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>>()