国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

淺談在Java中JSON的多種使用方式

瀏覽:7日期:2022-08-18 10:46:06
1. 常用的JSON轉換

JSONObject 轉 JSON 字符串

JSONObject json = new JSONObject();jsonObject.put('name', 'test');String str = JSONObject.toJSONString(json);

JSON字符串轉JSON

String str = '{'name':'test'}';JSONObject json = JSONObject.parseObject(str);

實體類轉JSON

Test test = new Test();test.setName('test');String testStr = JSONObject.toJSONString(test);JSONObject json = JSONObject.parseObject(testStr);

Map轉JSON

JSONObject json = JSONObject.parseObject(JSON.toJSONString(map));

JSON轉Map

Map jsonToMap = JSONObject.parseObject(jsonObject.toJSONString()); 2. 將多個JSON合并一個

JSONObject totalJSON = new JSONObject();totalJSON.putAll(json1);totalJSON.putAll(json2);

json1,json2 為JSONObject。 最終的代碼格式:

{ json1:{}, json2:{}}3.JSON拆分

不同的需求有不同的做法,以下提供兩種解決思路

定義兩個或多個JSON進行put和remove 比如明確需要哪些字段的時候可以定義一個數組用來存放key信息。存放和刪除的時候只需要遍歷數組就可以。 遍歷JSON,獲取key,value再重新put4.JSON遍歷

定義一個工具類,獲取key和value

if(object instanceof JSONObject) { JSONObject jsonObject = (JSONObject) object; for (Map.Entry<String, Object> entry: jsonObject.entrySet()) { Object o = entry.getValue(); if(o instanceof String) { System.out.println('key:' + entry.getKey() + ',value:' + entry.getValue()); } else { jsonLoop(o); } }}if(object instanceof JSONArray) { JSONArray jsonArray = (JSONArray) object; for(int i = 0; i < jsonArray.size(); i ++) { jsonLoop(jsonArray.get(i)); }}

JSONArray遍歷的方式有很多種

for

for(int i = 0; i < jsonArray.size(); i++){JSONObject json = jsonArray.getJSONObject(i);}

foreach

jsonArray.forEach(o -> { if (o instanceof JSONObject) { JSONObject json = (JSONObject) o; }

Iterator

JSONObject jsonObject = new JSONObject(jsonString);Iterator iterator = jsonObject.keys();while(iterator.hasNext()){key = (String) iterator.next();value = jsonObject.getString(key);}5.JSONPath

另外向大家推薦一個非常好用的工具:JSONPath。

JSONPath是一種簡單的方法來提取給定JSON的部分內容,使用方式類似于正則表達式。 GitHub地址: https://github.com/json-path/JsonPath

簡單描述下使用方法已經自己使用的案例 pom文件依賴:

<dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path</artifactId> <version>2.2.0</version></dependency>

JsonPath表達式總是以與XPath表達式結合使用XML文檔相同的方式引用JSON結構。

JsonPath中的“根成員對象”始終稱為$,無論是對象還是數組。

JsonPath表達式可以使用點表示法。

這里有個表格,說明JSONPath語法元素和對應XPath元素的對比。

淺談在Java中JSON的多種使用方式

官方案例:

淺談在Java中JSON的多種使用方式

淺談在Java中JSON的多種使用方式

詳細大家還是參照官方解說。 下面是我寫的案例:

JSONArray jsonArray = JSONPath.read('$.ePrint.common..label');

淺談在Java中JSON的多種使用方式

需要注意的是這里的JSONArray是JSONPath的,所以導包是:net.minidev.json.JSONPath JSON格式不會變,所以可以轉換為alibaba的JSONArray:

com.alibaba.fastjson.JSONArray jsonArr = JSON.parse(jsonArray.toString());

這里要注意一點也是我踩過的坑:如果獲取一個JSONObject下有多個同名的JSONArray,那么返回的[]也是多個。要先遍歷獲取到的數據,在取其中的一個JSON塊。

到此這篇關于淺談在Java中JSON的多種使用方式的文章就介紹到這了,更多相關Java中JSON使用方式內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 五月色婷婷综合开心网4438 | 亚洲无总热门 | 欧美高清在线精品一区 | 九九在线免费观看视频 | 久久国产乱子伦精品免费不卡 | 成人黄色免费网址 | 老师张开腿让我爽了一夜视频 | 国产精品久久久久999 | 亚洲在线免费观看视频 | 亚洲精品大片 | 日韩在线国产精品 | 狠狠澡夜夜澡人人爽 | 精品三级国产一区二区三区四区 | 99re久久资源最新地址 | 日韩精品一区二区三区中文在线 | 国产精品成人一区二区三区 | 成在线人视频免费视频 | 国产成人毛片亚洲精品不卡 | 国产成人综合高清在线观看 | 国产在线观看免费 | 久草成人在线视频 | 欧美日韩在线第一页 | 亚洲狠狠ady亚洲精品大秀 | 亚洲成人自拍 | 日韩一级精品视频在线观看 | 久久国产免费观看精品1 | 在线中文字幕精品第5页 | 欧美牛逼aa | 日韩美一区二区 | 国产成人亚洲欧美三区综合 | 日韩欧美中文字幕一区二区三区 | 久久香蕉精品成人 | 手机免费黄色网址 | 久草视频福利在线 | 男女乱淫真视频免费一级毛片 | 一区二区国产在线观看 | 亚洲一区二区三区精品影院 | 69欧美 | 步兵精品手机在线观看 | 可以免费观看欧美一级毛片 | 欧美极品第1页专区 |