1

有一个 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”为空(如上面的示例),则所有其他字段都将无法检索,这不是我所期望的。

4

1 回答 1

2

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

if (contact.has("name")) {
  name = contact.getJSONArray("name").getString(0);
}
于 2013-09-29T04:58:04.940 回答