激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 使用Java進行Json數據的解析(對象數組的相互嵌套)

使用Java進行Json數據的解析(對象數組的相互嵌套)

2020-12-19 14:55zz-1120-wtenlb Java教程

下面小編就為大家帶來一篇使用Java進行Json數據的解析(對象數組的相互嵌套)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

這段時間我們在做一個英語翻譯軟件的小小小APP,涉及到了對Json數據的解析,所以特地來總結一下!

假設我們要對如下數據進行解析,其實在平時,返回的Json數據是很亂的,很難分清數據的關系,這是經過相關工具美化后的結果

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
{
 "translation": [
 "愛"
 ],
 "basic": {
 "us-phonetic": "l?v",
 "phonetic": "l?v",
 "uk-phonetic": "l?v",
 "explains": [
  "n. 戀愛;親愛的;酷愛;喜愛的事物",
  "vt. 喜歡;熱愛;愛慕",
  "vi. 愛",
  "n. (Love)人名;(英)洛夫"
 ]
 },
 "web": [
 {
  "value": [
  "愛情",
  "愛",
  "愛"
  ],
  "key": "Love"
 },
 {
  "value": [
  "無盡的愛",
  "藍色生死戀",
  "不了情"
  ],
  "key": "Endless Love"
 },
 {
  "value": [
  "早戀",
  "青春期戀愛",
  "初戀"
  ],
  "key": "puppy love"
 }
 ]
}

 

我們把數據定義為一個字符串,加入轉義字符之后就成了這樣,有點亂是吧,所以我們根據上圖分析就好啦。

Json數據說白了就是對象和數組的相互嵌套,那么我們開始吧!

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
String st = "{\"translation\":[\"愛\"],\"basic\":{\"us-phonetic\":\"l?v\",\"phonetic\":\"l?v\",\"uk-phonetic\":\"l?v\",\"explains\":[\"n. 戀愛;親愛的;酷愛;喜愛的事物\",\"vt. 喜歡;熱愛;愛慕\",\"vi. 愛\",\"n. (Love)人名;(英)洛夫\"]},\"query\":\"love\",\"errorCode\":0,\"web\":[{\"value\":[\"愛情\",\"愛\",\"愛\"],\"key\":\"Love\"},{\"value\":[\"無盡的愛\",\"藍色生死戀\",\"不了情\"],\"key\":\"Endless Love\"},{\"value\":[\"早戀\",\"青春期戀愛\",\"初戀\"],\"key\":\"puppy love\"}]}";
 
 
  JSONObject str = JSONObject.fromObject(st);  //json數據的最外層肯定是一個對象,參數為字符串
 //對象str又分為3部分:translation,basic,web
  if(str.has("translation")){
 JSONArray tr = str.getJSONArray("translation");  //translation是一個json數組
 for(int i = 0 ;i<tr.size();i++){ //對數組元素進行遍歷
  System.out.println(tr.getString(i));  //因為元素的值是String類型的所以忽的值的方法是getString(index)
 }
  }
 
  //basic中有數組也有元素
  if(str.has("basic")){
 JSONObject us = str.getJSONObject("basic");  //對元素進行解析,并輸出元素的值
 System.out.print("美:[" + us.getString("us-phonetic") + "]\t"); 
 
 JSONObject uk = str.getJSONObject("basic");
 System.out.print("英:[" + us.getString("uk-phonetic") + "]\n");
 
 JSONObject basic = str.getJSONObject("basic");  //先獲得basic對象
 JSONArray explain = basic.getJSONArray("explains");  //再獲得basic對象下的explains數組 
 for(int i = 0;i<explain.size(); i++){ //對數組元素進行遍歷
  System.out.println(explain.getString(i));
 
  }
  if(str.has("web")){ //web是一個數組,每個數組元素又是三個Json對象
 System.out.println("拓展:"); 
 JSONArray web = str.getJSONArray("web"); 
 for(int i = 0; i<web.size() ; i++ ){ //但是對象中又嵌套著數組
  String t = web.getString(i); //遍歷過程將web數組元素賦給String型變量
  JSONObject we = JSONObject.fromObject(t); //通過String又得到每個元素的對象
  if(we.has("key")){
 System.out.print(we.getString("key")+"\t");  //得到對象中的元素
  }
  if(we.has("value")){ 
 JSONArray value = we.getJSONArray("value");
 for(int x = 0 ; x<value.size() ;x++ ){ //遍歷對象中嵌套的數組
  System.out.print(value.getString(x));  //得到數組元素的值
  if(x<value.size()-1){
 System.out.print(";");
  }
 }
  }
  System.out.println();
 }
  }

到這里就解析完啦!

以上這篇使用Java進行Json數據的解析(對象數組的相互嵌套)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/zz-1120-wtenlb/archive/2017/08/22/7414430.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 综合97| 中文字幕在线观看视频www | 中文字幕在线观看网址 | 美女羞羞视频网站 | 日本一区二区三区视频在线 | 男女无遮挡羞羞视频 | 免费观看欧美一级片 | 黄色网址免费在线播放 | 九九精品在线观看 | 91成人免费视频 | 免费久久精品 | 国产女同疯狂激烈互摸 | 高清做爰免费无遮网站挡 | 欧美一级一区二区三区 | 欧美激情精品久久久久久黑人 | 欧美伦交| 久久久久女人精品毛片九一 | 超污视频在线看 | 精品久久久91 | 性爱在线免费视频 | 亚洲成人在线免费观看 | 欧美a欧美 | 久色乳综合思思在线视频 | 欧美亚洲一区二区三区四区 | 在线观看日韩电影 | 模特三级在线观看 | 666sao| 久久2019中文字幕 | 久久伊人国产精品 | 亚洲第一色婷婷 | 久久久久女人精品毛片九一 | 午夜视频你懂的 | 亚洲免费网站 | 精品久久久久久亚洲精品 | 亚洲精品久久久久久久久久久 | 91专区在线观看 | 国产精品久久久久av | 精品1| 久久99精品久久久久久久久久久久 | www.99热精品| 视频一区二区三区在线 |