有一个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(如上例所示),则无法检索所有其他字段,这不是我预期的。
答案 0 :(得分:2)
为什么不在阅读前添加支票
if (contact.has("name")) {
name = contact.getJSONArray("name").getString(0);
}