java - 如何获取 JSON 数据的多个可选值?

标签 java json exception jackson

有一个 JSON 数据,其中包含几个可选字段:

获取这些值的代码是:

String name = null;
String family_name = null;
String given_name = null;
String suffix_name = null;
try {
    JSONObject contact = new JSONObject("{\"givenName\":[\"John\"],\"familyName\":[\"Doe\"]}");

    name = contact.getJSONArray("name").getString(0);
    family_name = contact.getJSONArray("familyName").getString(0);
    given_name = contact.getJSONArray("givenName").getString(0);
    suffix_name = contact.getJSONArray("honorificPrefix").getString(0);
} catch (JSONException e) {
    Log.e("ContactsManager", "Failed to parse json data: "+e);
}

这里的问题是,如果“name”为空(如上面的示例),则所有其他字段将无法检索,这不是我所期望的。

最佳答案

为什么不在阅读前添加一个检查

if (contact.has("name")) {
  name = contact.getJSONArray("name").getString(0);
}

关于java - 如何获取 JSON 数据的多个可选值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19074548/

相关文章:

java - 卸载 Java Mac OS X

ios - Swift 3 过滤 Json 和重新排序

c++ - 通过菜单向下传递异常类型

ios - 未捕获的异常'NSInvalidArgumentException'问题,原因:'***-[__ NSArrayM insertObject:atIndex:]:对象不能为nil

java - 搜索时忽略空格 - RESTHighLevelClient Java

java - 为 Sitemesh 选择合适的 url 模式以从其装饰器中排除我的 servlet?

java - Platform.runLater 问题 - 延迟执行

android - 将已解析的 JSON 添加到 ListView 并显示它

javascript - 将 HTML 元素的 "Style"属性转换为 JSON

python - Httplib 无法处理特定域