如何比较java中JsonObject的null值

时间:2012-01-10 11:03:35

标签: java json hibernate extjs4

stackoverflow成员我需要你的帮助。

我在下面给出了一个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视为null。我想将parentId值从null替换为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);
    }

但它似乎不起作用。我在这里做错了什么。

7 个答案:

答案 0 :(得分:118)

使用以下JsonObject方法检查针对任何键的值是否为null

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

答案 1 :(得分:4)

对于com.google.gson.JsonObject,我遵循了这个:

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

在我的json中,我有:

"Id":null

答案 2 :(得分:3)

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

答案 3 :(得分:1)

请尝试以下代码。

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

答案 4 :(得分:1)

对于在2020年使用org.json.JSONObject的任何人, 如果您有{“ key”:null}

通过JSONObject.NULL检查密钥的值

JSONObject json = new JSONObject("{"key":null}");
Object value = json.get("key");
if (value == JSONObject.NULL){
  ...
}

答案 5 :(得分:0)

尝试使用下一个代码

int parentId = jsonObject.optInt("parentId", 0)

答案 6 :(得分:0)

这两种方法都有效

if( jsonObject.get("parentId").equals(null) )

if( jsonObject.isNull("parentId") )

因为JSONObject具有自己的Null类,所以Java原语null与JSONObject中的Null()不同。

enter image description here