您好,登錄后才能下訂單哦!
小編給大家分享一下如何獲取json中的數(shù)據(jù),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
JSON是首先一種數(shù)據(jù)結(jié)構(gòu),說白了就是對數(shù)據(jù)的描述,剛剛出現(xiàn)是為了取代XML,可惜并沒有,但是在作為配置文件上,卻是很好,由于它小巧靈活,描述數(shù)據(jù)很好,所以在網(wǎng)絡(luò)上進(jìn)行數(shù)據(jù)傳輸更加方便。
請記住JSON對數(shù)據(jù)的描述形式,既然是形式,那么它的數(shù)據(jù)形式是什么樣的:
對象的描述是: {} 這個表示jsonobject(json對象)
數(shù)組的描述是: [] 表示jsonarray(json數(shù)組)
屬性或值的描述是: “”
連接之間的描述是: :
示例格式是這樣的:
{ “ret”: 1, “data”: [ { “id”: “8289”, “title”: “油燜大蝦”, “collect_num”: “1596”, “food_str”: “大蝦 蔥 生姜 植物油 料酒”, “num”: 1596 },
第一種方法:原生解析
首先要分析json的格式,這里首先是一個json對象(即JsonObject),里面還嵌套有一個json數(shù)組(即JsonArray),jsonarray里面又是一個json對象。分析清楚那就可以進(jìn)行解析了,當(dāng)然最好的話,還是要建立一個json所對應(yīng)的實(shí)體類bean,。
這里的result就是網(wǎng)絡(luò)請求返回來的json字符串。
JSONObject jsonObject = new JSONObject(result);
JSONArray jsonArray = jsonObject.getJSONArray(“data”);
for (int j = 0; j < jsonArray.length(); j++) {
JSONObject jsonObject2 = jsonArray.getJSONObject(j);
String id = jsonObject2.getString(“id”);
String title = jsonObject2.getString(“title”);
String pic = jsonObject2.getString(“pic”);
String collect_num = jsonObject2.getString(“collect_num”);
String food_str = jsonObject2.getString(“food_str”);
String num = jsonObject2.getString(“num”);
Log.e(“json——->”, id+”,”+title+”,”+pic+”,”+collect_num+”,”+food_str+”,”+num);
第二種解析方式:Gson解析
Gson解析需要下載gson.jar包。
這里解析就需要給json生成實(shí)體類,初學(xué)的話建議手寫,熟悉的話可以使用Android Studio里面插件GsonFormat來自動生成。
解析就是一句話的事:
MenuBean menuBean = new Gson().fromJson(result, MenuBean.class);
Log.e(“MenuBean—–>”, menuBean.getRet()+”“);
第三種解析方式:FastJson和Gson類似的。
MenuBean menuBean = JSON.parseObject(result,MenuBean.class);
Log.e(“MenuBean—–>”, menuBean.getRet()+”“);
Log.e(“MenuBean—–>”, menuBean.getData().get(0).getPic()+”“);
第四種解析方式:JackJson解析,同樣和上面類似
MenuBean menuBean;
menuBean = new ObjectMapper().readValue(result, MenuBean.class);
Log.e(“MenuBean—–>”, menuBean.getRet()+”“);
Log.e(“MenuBean—–>”, menuBean.getData().get(0).getPic()+”“);
以上是如何獲取json中的數(shù)據(jù)的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。