2017-08-16 165 views
-2

我目前正在嘗試處理一些JSON,但它給了我一個錯誤,指出「索引0超出範圍[0..0]」受影響的行是被註釋掉的行。JSON索引超出範圍

JSONObject parentObject3 = new JSONObject(finalJSON3); 
JSONArray parentArray3 = parentObject3.getJSONArray("players"); 
//JSONObject finalObject3 = parentArray3.getJSONObject(0); 

tempGameBans = finalObject3.getInt("NumberOfBans"); 
tempVacBans = finalObject3.getInt("NumberOfMutes");; 

這裏是我的JSON:

{ 
    "players": [ 
     { 
      "userID": "5648131", 
      "NumberOfBans": 0, 
      "NumberOfMutes": 1, 
     } 
    ] 

} 

編輯:目前我只想找每JSON URL 1個對象,這樣的指數應始終爲0,不像可能重複,這似乎是在尋找多個對象。

編輯2:我發現問題是什麼,這是由於我的服務器沒有正確發送JSON。無論如何,謝謝你們的幫助。

+1

[如何獲取JSON數組中的JSON數組?](https://stackoverflow.com/questions/32624166/how-to-get-json-array-within-json-object) –

+0

爲未來:嘗試驗證jsonlint.com上的json;) –

回答

1

您正在調用某個屬性,但不在JsonObject中,或者該指定索引處的屬性值不存在。

+0

我所調用的每個值都在JSON對象中,所以我不確定它爲什麼會給我一個錯誤。 –

+0

'JSONObject對象=新的JSONObject();''object.get(1)'而不是getInt();請嘗試這個。我也有些時候得到這個錯誤。這可能是價值沒有被分配的原因!請張貼您的最終JSON –

1

嘗試刪除「,」「NumberOfMutes」:1,的末尾。

+0

我認爲這是我把它放在我輸入問題的時候,因爲它不是最終的JSON –

+1

我想這與你的實際JSON有關。所以請提供您的問題的最終JSON。 –

2
String jsonString = new String("{\"players\": [{\"userID\": \"5648131\",\"NumberOfBans\": 0,\"NumberOfMutes\": 1}]}"); 
    JSONObject parentObject3 = new JSONObject(jsonString); 
    JSONArray parentArray3 = parentObject3.getJSONArray("players"); 
    JSONObject finalObject3 = parentArray3.getJSONObject(0); 

    System.out.println(finalObject3.getInt("userID")); 
    System.out.println(finalObject3.getInt("NumberOfBans")); 
    System.out.println(finalObject3.getInt("NumberOfMutes")); 

這工作正常,所以必須有一些其他問題。