如何在 java 中比较 JsonObject 中的空值

2022-09-01 07:57:36

堆栈溢出成员我需要你的一些帮助。

我有一个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);
    }

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


答案 1

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

public boolean isNull(java.lang.String key)

此方法用于针对任何键检查 Null,或者如果该键没有值,则检查 Null。

在文档中查看此内容

你的修改代码应该是这样的

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

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