Java, Parse JSON Объекты, которые я знаю, равны нулю - PullRequest
11 голосов
/ 22 сентября 2011

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

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

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

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

Ответы [ 3 ]

18 голосов
/ 22 сентября 2011

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

Редактировать: ... или isNull(String key), конечно:)

1 голос
/ 22 сентября 2011

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

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

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

за разовое продвижение

{promotion:null}

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

0 голосов
/ 22 сентября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...