日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Json 动态获取key 或者获取value

發布時間:2023/11/27 生活经验 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Json 动态获取key 或者获取value 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在解析之前首先要清楚要解析的json 是字符形式 還是數組形式

1 字符形式?

public String json = "{\"年齡\":\"23\",\"愛好\":\"游戲\",\"姓名\":\"小牧\"}";

看看解析效果圖

使用JSONObject 看下面代碼

 try {JSONObject jsonObject = new JSONObject(json);Iterator<String> it = jsonObject.keys();while (it.hasNext()) {String key = it.next();Log.e("=====key", key);String value = jsonObject.get(key).toString();Log.e("=====value", value);}} catch (JSONException e) {e.printStackTrace();}

打印結果

2 數組形式

public String jsonn = "[{\"年齡\":\"23\"},{\"愛好\":\"游戲\"},{\"姓名\":\"小牧\"}]";

解析效果圖

使用JSONArray?

  try {JSONArray jsonArray = new JSONArray(jsonn);Log.e("===jsonArray", jsonArray.toString());for (int i = 0; i < jsonArray.length(); i++) {JSONObject object = jsonArray.getJSONObject(i);Iterator<String> keys = object.keys();while (keys.hasNext()) {String key = keys.next();Log.e("=======key", key);String value = object.get(key).toString();Log.e("=====value", value);}}} catch (JSONException e) {e.printStackTrace();Log.e("=====error", e.getMessage());}

打印結果如下

?

這樣看著沒難度啊,來整個復雜點的 看看把

[{"中午餐": [{"主食": ["米飯", "饅頭"]}, {"主菜": ["辣白菜五花肉", "地三鮮"]}]
}, {"晚餐": [{"主食": ["面條", "饅頭"]}, {"主菜": ["土豆肉片", "江三鮮"]}]
}]

?把 json 定義一個string 如下

public String json = "[{\n" +"\"中午餐\": [{\n" +"\"主食\": [\"米飯\", \"饅頭\"]\n" +"}, {\n" +"\"主菜\": [\"辣白菜五花肉\", \"地三鮮\"]\n" +"}]\n" +"}, {\n" +"\"晚餐\": [{\n" +"\"主食\": [\"面條\", \"饅頭\"]\n" +"}, {\n" +"\"主菜\": [\"土豆肉片\", \"江三鮮\"]\n" +"}]\n" +"}]";

把數據獲取出來,然后自己放到布局上對應的位置 ,當時看到的時候心情也是一陣復雜呢

不要著急,看下面的代碼

try {JSONArray array = new JSONArray(json);for (int i = 0; i < array.length(); i++) {JSONObject object = array.getJSONObject(i);Iterator<String> keys = object.keys();while (keys.hasNext()) {//中午餐的keyString key = keys.next();Log.e("key", key);//中午餐里面的內容JSONArray array1 = object.getJSONArray(key);for (int j = 0; j < array1.length(); j++) {JSONObject object1 = array1.getJSONObject(j);Iterator<String> keys1 = object1.keys();while (keys1.hasNext()) {//主食keyString kStr = keys1.next();Log.e("kStr", kStr);//主食key里面的數組JSONArray array2 = object1.getJSONArray(kStr);for (int k = 0; k < array2.length(); k++) {//主食key里面的數組中的值Log.e("content", array2.getString(k));}}}}}} catch (JSONException e) {e.printStackTrace();}

效果圖

總結

以上是生活随笔為你收集整理的Json 动态获取key 或者获取value的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。