Java, Parse JSON Объекты, которые я знаю, являются нулевыми

У меня есть массив объектов JSON. Чтобы проанализировать эти массивы и сохранить просто значения типа данных, я должен сделать предположения о именах ключей и сохранить их соответственно.

Я также знаю, что иногда значения ключей будут равны нулю. Пример {["promotion":null]} Как бы я разобрал это?

Если я попытаюсь получить доступ к ключу, значение которого равно null, я получаю исключение JSON. Теперь это имеет смысл, но даже если я делаю if(myJSObject.getString("promotion")!=null), тогда я все равно получаю исключение JSON, когда он проверяет

как бы я сделал условную проверку в моем коде для нулевых объектов, чтобы я мог избежать исключения JSON.

Ответ 1

Используйте JSONObject.optString(String key) или optString(String key, String default).

Изменить:... или isNull(String key), конечно:)

Ответ 2

Я думаю, вам нужно отформатировать JSON по-другому;

для массива рекламных акций

{promotions:[{promotion:null}, {promotion:5000}]}

для одной рекламной акции

{promotion:null}

edit: в зависимости от того, какой json api вы используете, может быть нулевая проверка. Библиотека Google gson имеет метод .isJsonNull()

Ответ 3

Uh... Я не думаю, что это правильно отформатированная строка JSON. [] указывает массив, который не имеет никакого отношения к значению key = > , как это делает объект. Я думаю, что вы хотите быть {"promotion":null}, который, вероятно, будет работать с вашим фрагментом кода.