Intereting Posts
Android getMaxAddressLineIndex возвращает 0 для строки 1 Android: использование библиотеки ActionBarSherlock Перетаскивание повернутого текста внутри андроидального холста не работает должным образом Необходимо выйти из HandlerThread? Как получить доступ к com.android.internal.telephony.CallManager? Объекты словаря синтаксического анализа JSONObject Не удалось разрешить ресурс @ drawable / homebackground Как сделать клик-прослушиватель для изображений в горизонтальном ScrollView Включить тег в xml-файл Android-программирования Изменение шрифта заголовка приложения в android Сессионный файл cookie не истекает Когда Chrome Browser закрыт на смартфонах Могу ли я проверить на своем сервере, что пользователь заплатил за приложение Android через Google Play Store? Сделать Android-телефон позиционирующим как устройство ввода Bluetooth (мышь или клавиатура) Разница между AlarmManager и ScheduledExecutorService В чем смысл android.location.LocationManager.PASSIVE_PROVIDER?

Json Parsing и Nullable значение int в android

У меня есть json-объект, как я показал в двух случаях:

Дело 1 :

{ OWNER_ID : 145 } 

Случай 2:

  { OWNER_ID : null } 

Теперь, чтобы проанализировать данные, я использую следующую инструкцию:

 int note_owner_id = jsonObject.getInt("OWNER_ID"); 

Я знаю, что в java нам нужно использовать класс-оболочку, чтобы извлечь целое число NULL, и код должен быть написан следующим образом:

 Integer note_owner_id = jsonObject.getInt("OWNER_ID"); 

Но все же я не могу успешно проанализировать данные. Может кто-нибудь мне помочь? Как разбирать значение int в целом, чтобы он не показывал Exception?

Заранее спасибо.

Попробуйте этот путь, надеюсь, что это поможет вам решить вашу проблему.

Вместо использования getInt (String name) попробуйте использовать optInt (имя строки) или optInt (имя строки, int fallBack), которое будет обрабатывать нулевое значение:

 jsonObject.optInt("OWNER_ID"); 

Или

 jsonObject.optInt("OWNER_ID", 0); 

Вы можете использовать optInt

Public int optInt (имя строки)

Возвращает значение, отображаемое по имени, если оно существует и является int или может быть принудительно применено к int, или 0 в противном случае.

Для обработки нулевых значений как

 jsonObject.optInt("OWNER_ID"); 

или

 jsonObject.optInt("OWNER_ID", defaultValue); 

Вы можете установить Integer с тернарным и isNull(String)

 Integer note_owner_id = (jsonObject.isNull("OWNER_ID")) ? null : jsonObject.getInt("OWNER_ID"); 

Просто добавьте строку ниже, чтобы проверить, что ваша переменная имеет значение null или нет:

 if(jsonObject.isNULL("OWNER_ID")) { // code here when data is null } else { int note_owner_id = jsonObject.getInt("OWNER_ID"); }