首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检查JSON密钥是否存在?

如何检查JSON密钥是否存在?
EN

Stack Overflow用户
提问于 2013-07-05 18:54:38
回答 13查看 382.8K关注 0票数 196

因此,我从服务器获得了一些JSON值,但我不知道是否会有特定的字段。

就像这样:

{ "regatta_name":"ProbaRegatta",
  "country":"Congo",
  "status":"invited"
}

有时,还会有一个额外的字段,如:

{ "regatta_name":"ProbaRegatta",
  "country":"Congo",
  "status":"invited",
  "club":"somevalue"
}

我想检查名为"club“的字段是否存在,以便在解析时不会得到

org.json.JSONException:俱乐部

没有价值

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2013-07-05 18:57:32

JSONObject类有一个名为“has”的方法:

http://developer.android.com/reference/org/json/JSONObject.html#has(java.lang.String)

如果此对象具有名称的映射,则

返回true。映射可能为NULL。

票数 318
EN

Stack Overflow用户

发布于 2013-07-05 19:07:54

你可以通过这种方式检查' has‘-如果这个对象有一个name的映射,返回true。映射可能为空。

if (json.has("status")) {
   String status = json.getString("status"));
}

if (json.has("club")) {
   String club = json.getString("club"));
}

如果这个对象没有

的映射,或者它有一个值为空的映射,你也可以使用'isNull‘来检查,返回true。

if (!json.isNull("club"))
    String club = json.getString("club"));
票数 169
EN

Stack Overflow用户

发布于 2013-07-05 18:56:01

您可以使用JSONObject#has,提供key作为输入并检查该方法返回的是true还是false。你也可以

使用optString而不是getString

返回按名称映射的值(如果存在),并在必要时强制执行该值。如果不存在此类映射,则返回空字符串

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17487205

复制
相关文章

相似问题

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