我正在通过以下步骤在Android中进行JSON解析:
现在问题是有时XML响应有空字符串或空标记。
例如:
<data>
<name>Martin Clark</name>
<city>London</city>
<country>XYZ</country> or <country /> <!-- Sometimes it will blank string like this if country is not available -->
<age>27</age>
</data>
解析风格:
jsonObject.getString("country"); // It is working perfect when xml is this : <country>XYZ<country/>
jsonObject.getString("country"); // It is giving Exception key is not found when xml is this : <country />
我不明白为什么解析器没有给我空白XML对象的BLANK字符串。
通过深层次调试,我发现XML到JSON转换器不会产生与空白xml对象相对应的对象。
请帮帮我。
答案 0 :(得分:5)
使用optString
代替,捕获异常代价高昂且不必要。
public String optString(String name)
在API级别1中添加返回按名称映射的值(如果存在), 必要时强迫它。如果没有这样的映射,则返回空字符串 存在。
public String optString(String name,String fallback)
在API级别1中添加返回按名称映射的值(如果存在), 必要时强迫它。如果不存在这样的映射,则返回回退。
答案 1 :(得分:0)
您可以使用逻辑解决方案解决问题。
尝试一次。
public static String getStringFromJSON(JSONObject json, String key){
String value = ""; // Blank string by default.
try {
String value = json.getString(key);
return value;
}
catch(JSONException exp){
exp.getMessage();
}
return value; // this wil return BLANk string if object is not prasent.
}
你可以使用这个方法从json对象中获取String,