Я разбираю JSON в Android на следующих шагах:
Теперь проблема заключается в том, что иногда ответ XML имеет нулевую строку или тег Null.
Например:
<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 />
Я не понимаю, почему парсер не дает мне BLANK строку для чистого объекта XML.
При глубокой отладке уровня я обнаружил, что конвертер XML в JSON не создает объект, соответствующий пустому объекту xml.
Пожалуйста, помогите мне.
Вы можете использовать логическое решение для вашей проблемы.
Попробуйте это один раз.
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. }
Вы можете использовать этот метод для получения String из объекта json,
optString
этого используйте optString
чтобы поймать Исключение было дорогостоящим и ненужным.
Public String optString (имя строки)
Добавлено в API level 1 Возвращает значение, отображаемое по имени, если оно существует, при необходимости принудительное. Возвращает пустую строку, если такое отображение не существует.
Public String optString (String name, String fallback)
Добавлено в API level 1 Возвращает значение, отображаемое по имени, если оно существует, при необходимости принудительное. Возвращает возврат, если такое отображение не существует.
Документация