web-dev-qa-db-ja.com

javaでJsonObjectのnull値を比較する方法

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 }

nullとしてparentIdを取得しています。 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);
    }

しかし、機能していないようです。ここで私が間違っていること。

27
yaryan997

JsonObjectの次のメソッドを使用して、キーに対する値がnullかどうかを確認します

public boolean isNull(Java.lang.String key)

このメソッドは、任意のキーに対して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);
    }
120
Rajesh Pantula

Com.google.gson.JsonObjectの場合、これに従いました。

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

私のjsonでは、私は持っています:

"Id":null
4
AndroidGuy
if(jsonObject.isNull("parentId")){
    jsonObject.put("parentId", 0);
}
3
Farmor

次のコードを試してください。

if(jsonObject.isNull("parentId") || jsonObject.get("parentId").equals(""))
1
Yu Sun corn

次のコードを使用してみてください

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