收到一串JSON数据,想从里面解析出需要的成分。很奇怪的是,里面的字符串明明就是null,解析出来的结果确实"null",造成了很大的困扰。

JSON数据:

data{
    "name": "shawn1992",
    "address": null
}

解析代码:

JSONObject data = obj.optJSONObject("data");
String nameString = data.optString("name");
String addressString = data.optString("address");

解析结果:

nameString = "shawn1992";

address = "null";

解决办法:

其实,JsonObject有一个方法是判断value是否为空,JsonObject.isNull(key)。所以解决办法也很简单,在解析前进行处理一下就可以。

public static String optString(JSONObject json, String key)
{
    if (json.isNull(key))
        return null;
    else
        return json.optString(key, null);
}