获取(可变的)JSON数据的优雅方法是什么?

时间:2016-03-07 04:22:05

标签: java json

我正在寻找一种从JSON文件中提取数据的优雅方法,如果数据一致,这将很容易编码,但是我想考虑它的可能性。

例如

JSON示例1:

...
"years": [{
    "id": 100531911,
    "year": 2012,
    "styles": [{
        "id": 101395591,
        "name": "LT 2dr Convertible w/2LT (3.6L 6cyl 6M)",
        "submodel": {
            "body": "Convertible",
            "modelName": "Camaro Convertible",
            "niceName": "convertible"
        },
        "trim": "LT"
    }]
}],
...

JSON示例2:

...
"years": [{
    "year": 2012,
    "styles": [{
        "id": 101395591,
        "name": "LT 2dr Convertible w/2LT (3.6L 6cyl 6M)",
        "submodel": {
            "body": "Convertible",
        },
        "trim": "LT"
    }]
}],
...

正如您所看到的,第二个JSON示例是缺少数据,所以为了防止它,我做了以下操作,这有点乱:

例如,如果我想获得“niceName”元素。为了防止nullpointerexceptions,我必须运行一系列if语句:

if (jsonObj.has("years")) {

    if (jsonObj.getJSONObject("years").has("subModel")) {

        if(jsonObj.getJSONObject("years").getJSONOject("subModel").has("niceName")) {
        //do stuff
        }
    }
}

有没有更简洁的方法来解决这个问题?

0 个答案:

没有答案