Ответ 1
Используйте JSONObject.optString(String key)
или optString(String key, String default)
.
Изменить:... или isNull(String key)
, конечно:)
У меня есть массив объектов JSON. Чтобы проанализировать эти массивы и сохранить просто значения типа данных, я должен сделать предположения о именах ключей и сохранить их соответственно.
Я также знаю, что иногда значения ключей будут равны нулю. Пример {["promotion":null]}
Как бы я разобрал это?
Если я попытаюсь получить доступ к ключу, значение которого равно null, я получаю исключение JSON. Теперь это имеет смысл, но даже если я делаю if(myJSObject.getString("promotion")!=null)
, тогда я все равно получаю исключение JSON, когда он проверяет
как бы я сделал условную проверку в моем коде для нулевых объектов, чтобы я мог избежать исключения JSON.
Используйте JSONObject.optString(String key)
или optString(String key, String default)
.
Изменить:... или isNull(String key)
, конечно:)
Я думаю, вам нужно отформатировать JSON по-другому;
для массива рекламных акций
{promotions:[{promotion:null}, {promotion:5000}]}
для одной рекламной акции
{promotion:null}
edit: в зависимости от того, какой json api вы используете, может быть нулевая проверка. Библиотека Google gson имеет метод .isJsonNull()
Uh... Я не думаю, что это правильно отформатированная строка JSON. [] указывает массив, который не имеет никакого отношения к значению key = > , как это делает объект. Я думаю, что вы хотите быть {"promotion":null}
, который, вероятно, будет работать с вашим фрагментом кода.