检查 JSON 对象中是否存在值以避免 JSON 异常

新手上路,请多包涵

我从网络服务调用中获取了一个 JSONObject。

 JSONObject result = ...........

当我访问时 result.getString("fieldName");

如果 fieldName 存在于该 JSONObject 中,那么它工作正常。如果不存在,我将收到异常 JSONObject["fieldName"] not found.

我可以为此使用 try catch 。但是我有近 20 个这样的字段。我需要为此使用 20 个 try catch 块还是有其他选择。在此先感谢…

原文由 PSR 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

有一种方法 JSONObject#has(key) 正是为了这个目的。这样就可以避免对每个字段进行异常处理。

 if(result.has("fieldName")) {
    // It exists, do your stuff
} else {
    // It doesn't exist, do nothing
}

此外,您可以使用 JSONObject#isNull(str) 方法来检查它是否是 null 或不是。

 if(result.isNull("fieldName")) {
    // It doesn't exist, do nothing
} else {
    // It exists, do your stuff
}

您还可以将逻辑移动到一个通用方法(为了代码的可重用性),您可以在其中传递任何 JSONObject 和字段名称,如果该字段存在或不存在,该方法将返回。

原文由 Rahul 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题