本例中使用gson-2-8.2.jar包,使用时需要创建Gson对象
测试用到的封装类
public class Type {
//属性
private String ID;//类别ID
private String name;//类别名称
private String remark;//类别描述
public Type() {
super();
// TODO Auto-generated constructor stub
}
public Type(String name, String remark) {
super();
this.name = name;
this.remark = remark;
}
public Type(String iD, String name, String remark) {
super();
ID = iD;
this.name = name;
this.remark = remark;
}
public String getID() {
return ID;
}
public void setID(String iD) {
ID = iD;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}
java对象 与 json字符串之间相互转换
public static void main(String[] args) {
//新建Gson对象
Gson gson = new Gson();
//实例type对象
Type type = new Type("名称1","描述1");
//输出json字符串
System.out.println("json字符串为:"+gson.toJson(type));
//json字符串转换为java实体对象
Type type2 = gson.fromJson(gson.toJson(type), Type.class);
//输出转换后type2的name
System.out.println("type2的name为:"+type2.getName());
}
输出结果为:
List<?>泛型集合 与 json字符串 相互转换
public static void main(String[] args) {
//新建Gson对象
Gson gson = new Gson();
//新建List<Type>泛型集合
List<Type> typeList = new ArrayList<Type>();
//添加数据
typeList.add(new Type("名称1","描述1"));
typeList.add(new Type("名称2","描述2"));
//输出
String jsonStr = gson.toJson(typeList);
System.out.println("json字符串:"+jsonStr);
//转换list集合
List<Type> newList = gson.fromJson(jsonStr, new TypeToken<List<Type>>(){}.getType());
//输出对象元素
for (Type type : newList) {
System.out.println("转换后对象的name属性:"+type.getName());
}
}
输出结果为:
Map<?,?>泛型集合 与 json字符串 相互转换
public static void main(String[] args) {
//新建Gson对象
Gson gson = new Gson();
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "model1");
map.put(2, "model2");
//Map对象转换为json字符串
String jsonStr = gson.toJson(map);
System.out.println("Map集合的json字符串为:"+jsonStr);
//json字符串转换为Map对象
Map<Integer, String> newMap = gson.fromJson(jsonStr, new TypeToken<Map<Integer, String>>(){}.getType());
for (Integer key : newMap.keySet()) {
System.out.println("遍历输出map值:"+newMap.get(key));
}
}
输出结果为: