您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)Json數(shù)據(jù)怎么利用Java進(jìn)行解析,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
具體方法如下:
{ "translation": [ "愛" ], "basic": { "us-phonetic": "lʌv", "phonetic": "lʌv", "uk-phonetic": "lʌv", "explains": [ "n. 戀愛;親愛的;酷愛;喜愛的事物", "vt. 喜歡;熱愛;愛慕", "vi. 愛", "n. (Love)人名;(英)洛夫" ] }, "web": [ { "value": [ "愛情", "愛", "愛" ], "key": "Love" }, { "value": [ "無盡的愛", "藍(lán)色生死戀", "不了情" ], "key": "Endless Love" }, { "value": [ "早戀", "青春期戀愛", "初戀" ], "key": "puppy love" } ] }
我們把數(shù)據(jù)定義為一個(gè)字符串,加入轉(zhuǎn)義字符之后就成了這樣,有點(diǎn)亂是吧,所以我們根據(jù)上圖分析就好啦。
Json數(shù)據(jù)說白了就是對(duì)象和數(shù)組的相互嵌套,那么我們開始吧!
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\":[\"無盡的愛\",\"藍(lán)色生死戀\",\"不了情\"],\"key\":\"Endless Love\"},{\"value\":[\"早戀\",\"青春期戀愛\",\"初戀\"],\"key\":\"puppy love\"}]}"; JSONObject str = JSONObject.fromObject(st); //json數(shù)據(jù)的最外層肯定是一個(gè)對(duì)象,參數(shù)為字符串 //對(duì)象str又分為3部分:translation,basic,web if(str.has("translation")){ JSONArray tr = str.getJSONArray("translation"); //translation是一個(gè)json數(shù)組 for(int i = 0 ;i<tr.size();i++){ //對(duì)數(shù)組元素進(jìn)行遍歷 System.out.println(tr.getString(i)); //因?yàn)樵氐闹凳荢tring類型的所以忽的值的方法是getString(index) } } //basic中有數(shù)組也有元素 if(str.has("basic")){ JSONObject us = str.getJSONObject("basic"); //對(duì)元素進(jìn)行解析,并輸出元素的值 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對(duì)象 JSONArray explain = basic.getJSONArray("explains"); //再獲得basic對(duì)象下的explains數(shù)組 for(int i = 0;i<explain.size(); i++){ //對(duì)數(shù)組元素進(jìn)行遍歷 System.out.println(explain.getString(i)); } } if(str.has("web")){ //web是一個(gè)數(shù)組,每個(gè)數(shù)組元素又是三個(gè)Json對(duì)象 System.out.println("拓展:"); JSONArray web = str.getJSONArray("web"); for(int i = 0; i<web.size() ; i++ ){ //但是對(duì)象中又嵌套著數(shù)組 String t = web.getString(i); //遍歷過程將web數(shù)組元素賦給String型變量 JSONObject we = JSONObject.fromObject(t); //通過String又得到每個(gè)元素的對(duì)象 if(we.has("key")){ System.out.print(we.getString("key")+"\t"); //得到對(duì)象中的元素 } if(we.has("value")){ JSONArray value = we.getJSONArray("value"); for(int x = 0 ; x<value.size() ;x++ ){ //遍歷對(duì)象中嵌套的數(shù)組 System.out.print(value.getString(x)); //得到數(shù)組元素的值 if(x<value.size()-1){ System.out.print(";"); } } } System.out.println(); } }
上述就是小編為大家分享的Json數(shù)據(jù)怎么利用Java進(jìn)行解析了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。