首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >getJSON对optJSON

getJSON对optJSON
EN

Stack Overflow用户
提问于 2012-07-03 17:32:14
回答 4查看 19.4K关注 0票数 31

在查看文档 for JSONObject时,我注意到了两种方法:getJSONObject(String key)optJSONObject(String key)。从文档中,我认为他们做了几乎相同的事情,但有一个区别:如果找不到键或值,那么getJSONObject()抛出一个JSONException,而optJSONObject()只返回null

  1. getJSONObject()optJSONObject()还有其他区别吗?
  2. get相对于opt的优势是什么,反之亦然?
  3. 是否有特别的情况,我会使用一个而另一个,或其中一个是强烈不鼓励/禁止使用?
EN

Stack Overflow用户

发布于 2021-01-05 21:54:21

  1. 是。当找不到对象时,getJSONObject()会抛出异常。optJSONObject()返回null。
  2. 老实说,两者之间并没有真正的优势,这真的是个人喜好的问题。
  3. 我能想到的唯一原因是可读性的潜力。例如,查看此代码如何完成相同的任务。

当对象不存在时,如果要做更多的工作,则此选项更容易阅读。

代码语言:javascript
运行
复制
JSONObject object = jsonResponse.optJSONObject("object");

if(object == null)
{
    // handle not existing here
}

如果只抛出另一个异常或执行其他一行操作,则此选项会更容易一些。

代码语言:javascript
运行
复制
JSONObject object = null;    

try
{
    object = jsonResponse.getJSONObject("object");
}
catch(JSONException je)
{
    // handle object not found here
}
票数 2
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11316152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档