第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java 獲取嵌套的 JSON 對象/數組

Java 獲取嵌套的 JSON 對象/數組

慕森王 2023-04-13 16:50:55
使用的代碼:jObj = new JSONObject(json);newJSONString = jObj.getString("payload");JArray = new JSONArray(newJSONString);這是 JArray 的樣子:[{"06:30:00":{"color":"grey","time_color":"black"},"06:45:00":{"color":"grey","time_color":"黑色的”}}]現在我想遍歷接收到的時間并打印它們的顏色,該怎么做?我試過的:for (int i = 0; i < JArray.length(); ++i) {    JSONObject rec = null;    try {        rec = JArray.getJSONObject(i);    } catch (JSONException e) {        e.printStackTrace();    }    android.util.Log.e("print row:", String.valueOf(rec));}這只是給我這個輸出:{"06:30:00":{"color":"grey","time_color":"black"},"06:45:00":{"color":"grey","time_color":"black "}}
查看完整描述

2 回答

?
九州編程

TA貢獻1785條經驗 獲得超4個贊

您得到此輸出是因為您的 JSON 數組僅包含一個 JSON 對象,即 - {"06:30:00":{"color":"grey","time_color":"black"},"06:45:00 “:{“顏色”:“灰色”,“time_color”:“黑色”}}

在回答您的問題之前,我建議您先了解一下 JSON 語法。它將幫助您有效地理解您的問題和答案。

回到您的問題,為了從嵌套的 JSON 中獲取“顏色”字段:

  1. 遍歷 JSON 對象中的鍵。在你的情況下,這些是 - “06:30:00”,“06:45:00”。您可以在 google 上搜索解決方案來遍歷 java 中的 JSON 對象中的鍵。

  2. 獲取與給定鍵(時間)關聯的嵌套對象 - 您可以為此使用 Json 庫提供的 getJSONObject() 方法。

  3. 從 json 對象獲取“顏色”字段 - 您可以使用 Json 庫為此提供的 optString() 或 getString() 方法 - 取決于您的字符串是強制性的還是可選的。

這是針對您的問題的 Java 工作解決方案:

public static void getColor(JSONObject payloadObject) {

    try {

        JSONArray keys = payloadObject.names();

        for (int i = 0; i < keys.length(); i++) {

            String key = keys.getString(i); // Here's your key

            JSONObject value = payloadObject.getJSONObject(key); // Here's your value - nested JSON object

            String color = value.getString("color");

            System.out.println(color);

        }


    } catch (JSONException e) {

        e.printStackTrace();

    }

}

請注意,您收到的有效負載對象被視為 JSON 對象。


希望這可以幫助。


查看完整回答
反對 回復 2023-04-13
?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

使用Keys()返回的方法Iterator<String>,以便很容易迭代每個嵌套JSON


for (int i = 0; i < JArray.length(); ++i) {

try {

   JSONObject rec = JArray.getJSONObject(i);


   Iterator<String> keys = rec.keys();

    while(keys.hasNext()) {

      String key1 = keys.next();

      JSONObject nested = rec.getJSONObject(key1);   //{"color":"grey","time_color":"black"}


      //now again same procedure

         Iterator<String> nestedKeys = nested.keys();

           while(nestedKeys.hasNext())  {

               String key2 = nestedKeys.next();

              System.out.println("key"+"..."+key2+"..."+"value"+"..."+nested.getString(key2);

             }

      }


} catch (JSONException e) {

    e.printStackTrace();

   }

android.util.Log.e("print row:", String.valueOf(rec));

}


查看完整回答
反對 回復 2023-04-13
  • 2 回答
  • 0 關注
  • 214 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號