Как сравнить нулевое значение из JsonObject в Java - PullRequest
27 голосов
/ 10 января 2012

член 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 как ноль. Я хочу заменить значение parentId с нуля на 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);
    }

но, похоже, не работает. Что я здесь не так делаю.

Ответы [ 4 ]

119 голосов
/ 10 января 2012

Используйте следующий метод JsonObject, чтобы проверить, является ли значение для любого ключа нулевым

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);
    }
4 голосов
/ 19 апреля 2017

Для com.google.gson.JsonObject я следовал так:

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

В моем json, у меня есть:

"Id":null
3 голосов
/ 10 января 2012
if(jsonObject.isNull("parentId")){
    jsonObject.put("parentId", 0);
}
1 голос
/ 10 января 2012

Попробуйте следующие коды.

if(jsonObject.isNull("parentId") || jsonObject.get("parentId").equals(""))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...