最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何在Java中使用JSON-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)如何在Java中使用JSON,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

為賀州等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及賀州網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都做網(wǎng)站、賀州網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

1. 常用的JSON轉(zhuǎn)換

 JSONObject 轉(zhuǎn) JSON 字符串

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

JSON字符串轉(zhuǎn)JSON

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

實體類轉(zhuǎn)JSON

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

Map轉(zhuǎn)JSON

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

JSON轉(zhuǎn)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進(jìn)行put和remove 比如明確需要哪些字段的時候可以定義一個數(shù)組用來存放key信息。存放和刪除的時候只需要遍歷數(shù)組就可以。

  • 遍歷JSON,獲取key,value再重新put

4.JSON遍歷

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

if(object instanceof JSONObject) {
  JSONObject jsonObject = (JSONObject) object;
  for (Map.Entry 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的部分內(nèi)容,使用方式類似于正則表達(dá)式。 GitHub地址: https://github.com/json-path/JsonPath

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


  com.jayway.jsonpath
  json-path
  2.2.0

JsonPath表達(dá)式總是以與XPath表達(dá)式結(jié)合使用XML文檔相同的方式引用JSON結(jié)構(gòu)。

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

JsonPath表達(dá)式可以使用點表示法。

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

如何在Java中使用JSON

官方案例:

如何在Java中使用JSON

如何在Java中使用JSON

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

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

如何在Java中使用JSON

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

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

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

關(guān)于如何在Java中使用JSON就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


文章題目:如何在Java中使用JSON-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://fisionsoft.com.cn/article/copcid.html