JSONException: нет значения для XYZ при попытке getString («XYZ»)

Я разбираю JSON в Android на следующих шагах:

  1. Получите ответ XML от веб-службы с использованием объекта HttpPost.
  2. Преобразуйте этот XML в строку JSON, затем объект JSON.

Теперь проблема заключается в том, что иногда ответ 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 Возвращает значение, отображаемое по имени, если оно существует, при необходимости принудительное. Возвращает возврат, если такое отображение не существует.

Документация

Intereting Posts