JSONObject["keyName"] 在解析 Json 数据时未发现异常,即使密钥存在

JSONObject["keyName"] not found exception while parsing Json data even if key is present

我有一个 returns JSON 数据的代码。我需要从中选择某些值,但它会为某些键抛出异常,而某些键是成功的。

这是JSON数据

{"value":[{"Name":"abc.txt","DateTimeLastModified":"2017-09-21T20:11:04Z","IsInline":false,"ContentBytes":"some byte data","IsContactPhoto":false}]}

下面是我尝试从中选取值的方式

JSONObject jsonObject = response.getBody().getObject();
    JSONArray tsmresponse = (JSONArray) jsonObject.get("value");
    for(int i=0; i<tsmresponse.length(); i++){
        System.out.println("Name:: "+tsmresponse.getJSONObject(i).getString("Name"));           
            }

代码抛出异常org.json.JSONException:未找到JSON对象["Name"]。 而它能够读取 DateTimeLastModified 值。

请帮我解决这个问题。

这应该适合你,修改你的代码如下:

JSONObject jsonObject = response.getBody().getObject();
JSONArray tsmresponse = jsonObject.getJSONArray("value");//here is your modification
for(int i=0; i<tsmresponse.length(); i++){
    System.out.println("Name:: "+tsmresponse.getJSONObject(i).getString("Name"));           
        }

试一试并确认是否有效