java

2012-01-10 13 views
23

stackoverflow üyesindeki JsonObject öğesinden boş değer nasıl karşılaştırılır?java

Ben boş olarak parentId alıyorum

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

aşağıda verilmiştir JSONObject nesnesi yaşıyorum. Aşağıdaki kodu

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

sözü ile ben boş dan bunu yapmaya çalışıyorum 0.

için parentId değerini değiştirmek istiyor ama çalışıyor gibi görünmemektedir. Burada ne yapıyorum yanlış. herhangi bir tuşa karşı bir değer Bu yöntem, herhangi bir tuşa karşı Null kontrol etmek için kullanılır

public boolean isNull(java.lang.String key) 

null veya

+1

Kod çalıştırıldı mı? System.out.printlns çıktı çıktı nedir? JsonObject gereksinimi mi yoksa sadece seçtiğiniz Json ayrıştırıcısı mı? –

+0

Hiçbir çıktı almıyorum. ama eğer system.out.println ("PARENTID ::" + jsonObject.get ("parentId")) için JSON AMAÇ DEĞERİNİ ** atarsam; ** çıktı değerini ** null ** olarak alıyorum. Bu yüzden koşulu kullanarak onu kontrol etmek istiyorum ama her zaman sadece başka bir yere gider. Bu – yaryan997

+0

'da sorunun ne olduğunu bilmiyorum "Ben herhangi bir çıktı almadım" ne demek istiyorsun? Ya o zaman 'o zaman' vakasından ya da 'ötekilerden' yazılı olanı alırsın. – Viruzzo

cevap

98

kontrol etmek için JSONObject nesnesi aşağıdaki yöntemi kullanarak anahtar için bir değer olup olmadığını. Bu

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

Cevabınız için teşekkür ederiz, ancak jsonlib-2.2.3.jar'ım ** içinde ** isNull ** yöntem beyanı bulunmuyor. Nll nesne formu json verileri karşılaştırmak. ?? – yaryan997

+3

jsonlib-2.2.3.jar dosyasında, net.sf.json.util.JSONUtils sınıfının isNull yöntemine sahip olduğunu kontrol edin –

+4

yes .. rao bunu JSONUtils sınıfını kullandı ** boolean jsonUtils = JSONUtils.isNull (jsonObject.get ("parentId) ")); ** desteğiniz için thanx – yaryan997

0

aşağıdaki kodları deneyin gibi documentation

Sizin Modifiye kodunda

onay bu olmalıdır. com.google.gson.JsonObject için

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

bu json.simple'de çalışmıyor. json.simple'de kullanmak –

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

bu json.simple'de çalışmıyor. * 'json.simple'de ne kullanılmalı –

0

, bu izledi: my json olarak

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

, ben: json nesnesi sonra ne yapılmaktadır

"Id":null