使用我的dto表示法检查json字符串中的空/空对象

时间:2019-05-02 13:56:49

标签: java json null dto

我到处都在寻找如何隔离null问题的示例。

正在向我发送Json字符串,并且正在检查某些值,但有时Json字符串中不存在对象(colUniqueID)。

{
    "mitigant": {
        "productUnid": "123456789123456789",
        "createdDate": "",
        "basketNumber": "bb012456",
        "shareIndicator": "",
        "assetDetails": [
            {
                "alias": {
                    "createdDate": {"value": ""},   
                    "assetID": {"value": "1111"},
                    "assetNumber": {"value": "aaa123456"},
                    "colUniqueID": {"value": ""}
                }
            }
        ]
    }
}
String assetNum = collateral.getMitigant().getAssetDetails().get(i).getAlias().getColUniqueID().getValue();

if (assetNum != null) {
//Do something
}

但是,当我声明assetNum变量时,出现“ HTTP JVM:java.lang.NullPointerException”错误。因此,它甚至都不涉及“ if”语句

任何想法?

请帮助。

1 个答案:

答案 0 :(得分:1)

在例外发生之前稍作休息:

ColUniquueID id = collateral.getMitigant().getAssetDetails().get(i).getAlias().getColUniqueID();

if (id == null) {
  // manage the case
} else {
  String assetNum = id.getValue()
}


添加:

当您尝试访问colUniqueID对象的值为null时,会发生NullPointerException。

如果调用空对象的任何方法,您将拥有一个NPE,因此在对可能为空的对象调用getValue()之前,必须检查它是否为空。