有人知道测试不返回值的JSON对象的语法是什么吗?例如,如果用户键入了错误的Web地址,并且JSON代码未检索任何内容。下面,我首先从我正在使用的特定站点获取一个数组Object:
JSONArray hourlyForecast = jsonObj.getJSONArray("hourly_forecast");
但如果这不能找回任何东西呢。我怎么测试呢?我试过了
if(hourlyForecast==null){}
但它没有用,因为我不确定这是否是一个空对象。我的log cat返回:
org.json.JSONException: No value for error
谢谢
答案 0 :(得分:1)
您可以尝试捕获异常。
根据JavaDocs:
抛出:
JSONException
- 如果未找到密钥或该值不是JSONArray。
这意味着如果找不到值,它会抛出异常(如果它是一个空对象)。
所以你可以这样做:
try {
JSONArray hourlyForecast = jsonObj.getJSONArray("hourly_forecast");
catch(JSONException e) {
// what to do if empty JSON
}
答案 1 :(得分:1)
使用jsonObject.has("key")
检查是否存在值。