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

时间:2013-09-29 04:52:32

标签: 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”为null(如上例所示),则无法检索所有其他字段,这不是我预期的。

1 个答案:

答案 0 :(得分:2)

为什么不在阅读前添加支票

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