2012-01-10 4 views
23

회원님 께 도움이 필요합니다.자바에서 JsonObject에서 null 값을 비교하는 방법

나는 내가 널 (null)로 parentId을 얻고있다

{ 
"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 } 

아래에 주어진 된 JSONObject를있다. 아래 코드

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); 
    } 

언급과 내가 널에서 내가 할 노력하고 있어요 0

에 parentId 값을 대체 할하지만이 작동하지 않는 것 같다. 내가 여기서 잘못하고있는 것. 모든 키에 대한 값이 방법은 모든 키에 대해 널 (null)을 확인하는 데 사용됩니다

public boolean isNull(java.lang.String key) 

null의 경우, 또는

+1

코드가 실행됩니까? System.out.printlns의 출력 prom는 무엇입니까? JsonObject 요구 사항 또는 Json 파서 만 선택 했습니까? –

+0

출력이 없습니다. 하지만 전에 조건이 있다면 ** System.out.println ("JSON OBJECT VALUE for PARENTID ::"+ jsonObject.get ("parentId")); ** 나는 ** null **로 출력 값을 얻고있다. 그래서 조건을 사용하여 확인하고 싶지만 항상 다른 부분으로 이동합니다. 이 문제의 원인을 모르겠다. – yaryan997

+0

"출력이 없습니다."무슨 뜻입니까? 당신은 println을 'then'케이스 또는 'else'케이스에서 얻습니다. – Viruzzo

답변

98

이 확인 된 JSONObject의 다음과 같은 방법을 사용하여 키 값이없는 경우. 이

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 ** 메소드 선언이 없습니다. 그래서 nll 개체 양식 json 데이터를 비교하는 방법. ?? – yaryan997

+3

jsonlib-2.2.3.jar에서 net.sf.json.util.JSONUtils 클래스에 isNull 메서드가 있는지 확인하십시오. –

+4

예 .. rao 내가 JSONUtils 클래스를 사용하여 수행했습니다. ** boolean jsonUtils = JSONUtils.isNull (jsonObject.get ("parentId ")); ** 당신의 지원에 대한 고맙습니다 – yaryan997

0

는 다음과 같은 코드를 시도처럼 documentation

수정 된 코드

확인이 있어야한다. com.google.gson.JsonObject를 들어

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

, 나는이 다음에 내 JSON에서

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

을, 내가 가진 : json으로 개체 이후에 어떻게됩니까

"Id":null 
관련 문제