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"));
}
试一试并确认是否有效
我有一个 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"));
}
试一试并确认是否有效