2017-04-26 39 views
1

我正在從包含顏色信息的API獲取JSON響應。在JAVA中未找到JSON對象中的JSON ARRAY值 - ANDROID

這是響應:

enter image description here

我希望能夠從信息JSON對象內的background_colors陣列訪問html_code值。

首先,曾試圖這樣做僅僅用這個代碼:

result = stack.getBody().getObject().toString(2); 
      JSONObject parentObject = new JSONObject(_result); 
      JSONArray jr = parentObject.getJSONArray("results"); 
      JSONObject jb1 = jr.getJSONObject(0); 
      System.out.print(jb1); 

這會打印出我的信息對象的要求。

但是,如果我嘗試訪問JSON陣列 「background_colors」 用這個,

JSONObject parentObject = new JSONObject(_result); 
      JSONArray jr = parentObject.getJSONArray("results"); 
      JSONObject jb1 = jr.getJSONObject(0); 
      System.out.print(jb1); 
      JSONArray jsonArray = 
      jb1.getJSONArray("background_colors"); 
      System.out.print(jsonArray); 

我得到這個錯誤: 「background_colors」 沒有價值。

我知道這個錯誤意味着background_colors數組在JSONObject中不存在,但我不知道如何以及爲什麼會出現這種情況?

任何幫助將不勝感激。

+1

'background_colors'是從數組中'info'對象不是根對象的屬性。 – Titus

回答

1

background_colorsinfo對象的屬性,而不是數組中的根對象。

嘗試這種情況:

JSONObject parentObject = new JSONObject(_result); 
JSONArray jr = parentObject.getJSONArray("results"); 
JSONObject jb1 = jr.getJSONObject(0).getJSONObject("info"); 
JSONArray jsonArray = jb1.getJSONArray("background_colors"); 
System.out.print(jsonArray); 
0
JSONObject jb1 = jr.getJSONObject(0).getJSONObject("info"); 
JSONArray jsonArray = jb1.getJSONArray("background_colors");