您好,登錄后才能下訂單哦!
小編給大家分享一下如何獲取json中的數據,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
JSON是首先一種數據結構,說白了就是對數據的描述,剛剛出現是為了取代XML,可惜并沒有,但是在作為配置文件上,卻是很好,由于它小巧靈活,描述數據很好,所以在網絡上進行數據傳輸更加方便。
請記住JSON對數據的描述形式,既然是形式,那么它的數據形式是什么樣的:
對象的描述是: {} 這個表示jsonobject(json對象)
數組的描述是: [] 表示jsonarray(json數組)
屬性或值的描述是: “”
連接之間的描述是: :
示例格式是這樣的:
{ “ret”: 1, “data”: [ { “id”: “8289”, “title”: “油燜大蝦”, “collect_num”: “1596”, “food_str”: “大蝦 蔥 生姜 植物油 料酒”, “num”: 1596 },
第一種方法:原生解析
首先要分析json的格式,這里首先是一個json對象(即JsonObject),里面還嵌套有一個json數組(即JsonArray),jsonarray里面又是一個json對象。分析清楚那就可以進行解析了,當然最好的話,還是要建立一個json所對應的實體類bean,。
這里的result就是網絡請求返回來的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生成實體類,初學的話建議手寫,熟悉的話可以使用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中的數據的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。