JSON索引超出范围

时间:2017-08-16 10:03:04

标签: java android json

我目前正在尝试处理一些JSON,但它给了我一个错误,说“索引0超出范围[0..0)”受影响的行是被注释掉的。

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没有从我的服务器正确发送。无论如何,谢谢你的帮助。

3 个答案:

答案 0 :(得分: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"));

这样做很好,所以还有另外一个问题。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

尝试删除" NumberOfMutes":1,末尾的","