JSON 作为一种网络传输中常用的数据转换格式 不得不用啊
它类似于XML 但是更小 更易解析
推荐使用 FastJson的jar包 快且好用
通过对JSON类的静态方法的调用 去完成转化
那么转化什么呢 其实就是字符串和对象之间的转化
String jsonStr = JSON.toJSONString(obj);
说明一下这里的obj 可以是一个自定义的对象 也可以是一个对象集合 如 List<obj>
那么怎么转换回去呢 ?
举个栗子 :
public class Course {
private String week; // 周几
public Course(String week) {
this.week = week;
}
public String getWeek() {
return week;
}
public void setWeek(String week) {
this.week = week;
}
}
这是我们自定义的一个对象
然后 将List<Course> data 这个对象集合 JSON转为String
调用转换方法 :
public <T> List<T> getObjList(String jsonString, Class<T> cls) {
return JSON.parseArray(jsonString, cls);
}
结果来了个异常 :
看一眼说 缺了默认的构造方法 好吧 网上一查 自定义的Course类中需要了一个无参数的构造方法
需要用反射的原理去解释如何创建这个对象
那么给Course类 添加一个
public Course(){}
转化单独的一个对象的方法
public <T> T getObj(String jsonString, Class<T> cls) {
return JSON.parseObject(jsonString, cls);
}
关于 Map 和 List<Map> 的转化直接上代码 :
public List<Map<String, Object>> getObjListMap(String jsonString) {
return JSON.parseObject(jsonString,
new TypeReference<List<Map<String, Object>>>() {
});
}
如果是Map<String, Object> 就用new TypeReference<Map<String, Object>>()