JSON - 无价值测试

时间:2015-11-09 22:27:07

标签: java json

有人知道测试不返回值的JSON对象的语法是什么吗?例如,如果用户键入了错误的Web地址,并且JSON代码未检索任何内容。下面,我首先从我正在使用的特定站点获取一个数组Object:

JSONArray hourlyForecast = jsonObj.getJSONArray("hourly_forecast");

但如果这不能找回任何东西呢。我怎么测试呢?我试过了

if(hourlyForecast==null){}

但它没有用,因为我不确定这是否是一个空对象。我的log cat返回:

org.json.JSONException: No value for error

谢谢

2 个答案:

答案 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")检查是否存在值。