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。无论如何,谢谢你们的帮助。
您正在调用某个属性,但不在JsonObject
中,或者该指定索引处的属性值不存在。
我所调用的每个值都在JSON对象中,所以我不确定它为什么会给我一个错误。 –
'JSONObject对象=新的JSONObject();''object.get(1)'而不是getInt();请尝试这个。我也有些时候得到这个错误。这可能是价值没有被分配的原因!请张贴您的最终JSON –
尝试删除“,”在“NumberOfMutes”:1,的末尾。
我认为这是我把它放在我输入问题的时候,因为它不是最终的JSON –
我想这与你的实际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"));
这工作正常,所以必须有一些其他问题。
[如何获取JSON数组中的JSON数组?](https://stackoverflow.com/questions/32624166/how-to-get-json-array-within-json-object) –
为未来:尝试验证jsonlint.com上的json;) –