如何测试JSONObject是否为NULL或不存在?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (47)

好日子,我有一组JSONObject值,我从服务器接收并操作。大多数时候,我得到一个JSONObject的值(可以说统计),有时,它返回一个错误对象的代码和错误的描述。现在我的问题是如何构建我的代码,以便它不会中断,如果它返回错误。我以为我可以做到这一点,但不工作。

public void processResult(JSONObject result) {

        try {
             if(result.getJSONObject(ERROR) != null ){
                 JSONObject error = result.getJSONObject(ERROR);
                 String error_detail = error.getString(DESCRIPTION);
                 if(!error_detail.equals(null)){

                                  //show error login here

                 finish();
            } 
                          else {

            JSONObject info = result.getJSONObject(STATISTICS);
            String stats = info.getString("production Stats"));
             }
                      }
提问于
用户回答回答于

在JSONObject中有一个'Has'方法可以用来确定密钥。

我不知道这是否可行,但看起来可信。

public void processResult(JSONObject result) {

    if(result.has("ERROR"))
    {
        JSONObject error = result.getJSONObject("ERROR")
        String error_detail = error.getString("DESCRIPTION");

        if(error_detail != null)
        {
            //Show Error Login
            finish();
        }
    }
    else if(result.has("STATISTICS"))
    {
        JSONObject info = result.getJSONObject("STATISTICS");
        String stats = info.getString("Production Stats");

        //Do something
    }
    else
    {
        throw new Exception("Could not parse JSON Object!");
    }
}
用户回答回答于

使用.has(String).isNull(String)

保守的用法可能是;

    if (record.has("my_object_name") && !record.isNull("my_object_name")) {
        // Do something with object.
      }

扫码关注云+社区

领取腾讯云代金券