2012-01-10 1 views
23

Элемент stackoverflow Мне нужна помощь от вас.Как сравнить значение null из JsonObject в java

Я имею JSONObject приведенную ниже

{ 
"Id": null, 
"Name": "New Task", 
"StartDate": "2010-03-05T00:00:00", 
"EndDate": "2010-03-06T00:00:00", 
"Duration": 1, 
"DurationUnit": "d", 
"PercentDone": 60, 
"ManuallyScheduled": false, 
"Priority": 1, 
"parentId": null, 
"index": 2, 
"depth": 1, 
"checked": null } 

я получаю ParentID нулевой. Я хочу, чтобы заменить значение ParentID от нулевой до 0.

Я пытаюсь сделать это с указанным ниже код

if(jsonObject.get("parentId") == null || jsonObject.get("parentId") == "") 
    { 
     System.out.println("inside null"); 
     jsonObject.put("parentId", 0); 
    } 
    else 
    { 
     System.out.println("inside else part"); 
     //jsonObject.put("parentId", jsonObject.getInt("parentId")); 
     jsonObject.put("parentId", 0); 
    } 

но, кажется, не работает. Что я делаю неправильно здесь.

+1

Что происходит с объектом JSon после код выполнен? Каков выходной выпуск System.out.printlns? Является ли требование JsonObject или только парсером Json, который вы выбрали? –

+0

Я не получаю никакого вывода. но раньше, если условие, если я ставлю ** System.out.println ("JSON OBJECT VALUE FOR PARENTID ::" + jsonObject.get ("parentId")); ** я получаю значение распечатки как ** null ** поэтому я хочу проверить его, используя условие if, но он всегда идет только на часть. Не знаю, в чем проблема в этом – yaryan997

+0

«Я не получаю никакого результата», что вы имеете в виду? Либо вы получаете println из «then», либо из «else». – Viruzzo

ответ

98

Используйте следующий метод JSONObject, чтобы проверить, является ли значение против любого ключа является пустым

public boolean isNull(java.lang.String key) 

Этого метод используется для проверки Null против любой клавиши или если нет значения ключа.

проверить это в documentation

Ваш Модифицированный код должен быть таким

if(jsonObject.isNull("parentId")) 
    { 
     System.out.println("inside null"); 
     jsonObject.put("parentId", 0); 
    } 
    else 
    { 
     System.out.println("inside else part"); 
     //jsonObject.put("parentId", jsonObject.getInt("parentId")); 
     jsonObject.put("parentId", 0); 
    } 
+0

спасибо за ваш ответ, но у моего jsonlib-2.2.3.jar нет ** isNull ** декларация метода в нем. поэтому, как сравнить данные jll объекта json. ?? – yaryan997

+3

В jsonlib-2.2.3.jar, проверьте net.sf.json.util.JSONUtils класс isNull метод –

+4

yes .. rao Я сделал это с использованием класса JSONUtils ** boolean jsonUtils = JSONUtils.isNull (jsonObject.get ("parentId ")); ** thanx для вашей поддержки – yaryan997

0

Попробуйте следующие коды.

if(jsonObject.isNull("parentId") || jsonObject.get("parentId").equals("")) 
+0

это не работает в 'json.simple. *' что использовать в 'json.simple' –

3
if(jsonObject.isNull("parentId")){ 
    jsonObject.put("parentId", 0); 
} 
+0

это не работает в' json.simple. * ', что использовать в' json.simple' –

0

Для com.google.gson.JsonObject, я следовал за этим:

boolean isIdNull = jsonObject.get("Id").isJsonNull(); 

В моей JSON, у меня есть:

"Id":null 
Смежные вопросы