获取属性值并检查是否存在并且为null

时间:2016-02-04 02:43:04

标签: android json gson

我正在为json对象编写自定义反序列化器,并且我在json中有一个可能不存在的属性,如果它存在,则其值可能为null。

JsonObject obj = ....;
String value = "";
// first check if exists
if (obj.has("someProperty")) {
    // get the proprty
    JsonElement element = obj.get("someProperty");
    // better check if its null
    if (!element.isJsonNull()) {
       // ah yes finally have the value
       value = element.getAsString();
    }
}

Yup工作得很好,但非常冗长。梳理GSON api找到更好的方法,没有运气。有更简单的方法吗?

2 个答案:

答案 0 :(得分:0)

也许这会更好一点:

JsonElement element = obj.get("someProperty");
if (element != null && !element.isJsonNull()) {
    value = element.getAsString();
}

答案 1 :(得分:0)

你应该使用org.json.JSONObject;并执行以下操作。

JSONObject obj1 = new JSONObject();
        String value = "";
        // will set value to your element if it exists otherwise will return empty string
        value = obj1.optString("someProperty");