JSON索引超出范围

问题描述:

我目前正在尝试处理一些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;) –

您正在调用某个属性,但不在JsonObject中,或者该指定索引处的属性值不存在。

+0

我所调用的每个值都在JSON对象中,所以我不确定它为什么会给我一个错误。 –

+0

'JSONObject对象=新的JSONObject();''object.get(1)'而不是getInt();请尝试这个。我也有些时候得到这个错误。这可能是价值没有被分配的原因!请张贴您的最终JSON –

尝试删除“,”“NumberOfMutes”:1,的末尾。

+0

我认为这是我把它放在我输入问题的时候,因为它不是最终的JSON –

+1

我想这与你的实际JSON有关。所以请提供您的问题的最终JSON。 –

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")); 

这工作正常,所以必须有一些其他问题。