本文中的json基於FastJson,並且推薦大家使用。FastJson相比Gson,效率更好一些,對於不是特別複雜的JSON,可以選擇。
JSON格式字符串與JSON對象
字符串 轉 JSON
JSONObject jsonObject = JSON.parseObject(json_str);
或
JSONObject jsonObject = JSONObject.parseObject(json_str);
JSON 轉 字符串
String json_str = jsonObject.toJSONString()
JSONArray格式字符串與JSON對象
JSONArray jsonArray = JSON.parseArray(jsonarray_str);
或
JSONArray jsonArray = JSONArray.parseArray(jsonarray_str);
JSON格式字符串與javaBean之間的轉換
JSON字符串 轉 Bean
Bean bean = JSON.parseObject(json_str, Bean.class)
或
Bean bean = JSONObject.parseObject(json_str, Bean.class)
Bean 轉 JSON字符串
String json_str = JSON.toJSONString(bean);
或
String json_str = JSONObject.parseObject(bean);
JSONArray格式字符串與javaBean之間的轉換
JSONArray字符串 轉 ArrayList
ArrayList<Bean> beans = JSON.parseObject(jsonarray_str, Bean.class)
或
ArrayList<Bean> beans = JSONObject.parseObject(jsonarray_str, Bean.class)
JSON對象與javaBean之間的轉換
JSONObject 轉 Bean
JSONObject json =(JSONObject) JSON.toJSON(bean)
JSONArray 轉 Bean
JSONArray json =(JSONArray) JSON.toJSON(bean)
遍歷JSONArray
方法一:
for (int i = 0; i < size; i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
}
方法二:
for (Object obj : jsonArray) {
JSONObject jsonObject = (JSONObject) obj;
}
遍歷JSONObject
無序:
JSONObject jsonObj = JSON.parseObject(jsonStr);
for (Map.Entry<String, Object> entry : jsonObj.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
有序:
LinkedHashMap<String, String> jsonMap = JSON.parseObject(jsonStr, new TypeReference<LinkedHashMap<String, String>>() {
});
for (Map.Entry<String, String> entry : jsonMap.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
注意:fastjson的json對象默認是無序的,如需要有序則在創建對象時指定true。
JSONObject json = new JSONObject(true);
——————————————————————————————————
作者:桃花惜春風
轉載請標明出處,原文地址:
https://blog.csdn.net/xiaoyu_BD/article/details/84379329
如果感覺本文對您有幫助,您的支持是我堅持寫作最大的動力,謝謝!