最全JSON格式字符串、JSON對象、JavaBean之間的相互轉換及遍歷

本文中的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
如果感覺本文對您有幫助,您的支持是我堅持寫作最大的動力,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章