我正在研究json解析器。在json响应中,一些值包含布尔值或空值,然后如何检查它是布尔值还是空值?例如:user = false或user = null。在解析时,它给出了异常,因为“用户不是jsonobject”。
JSONObject json = new JSONObject(query);
JSONObject info = json.getJSONObject("info");
JSONObject user = info.getJSONObject("user");
谢谢, Vishakha。
答案 0 :(得分:1)
您是否尝试过ingo.optBoolean(“user”)?
来自optBoolean的SDK文档: 返回按名称映射的值(如果存在)并且是布尔值或可以强制转换为布尔值。否则返回false。
请注意,在此示例中,null将被视为false值。
答案 1 :(得分:0)
我认为问题可能是您正在尝试使用getJSONObject()获取JSONArray。尝试json.getJSONArray(“info”)。我有同样的问题,我试图做(如果(object.getJSONObject(“string”)== null)但它在尝试让对象检查其值时抛出异常,并且.optBoolean完美地工作
答案 2 :(得分:0)
JSONObject json = new JSONObject(data);
String user = json.getString("user");
variable.setUser(courses_icon_file_name == null ? "": user);
答案 3 :(得分:0)
isNull()您可以使用if(json.isNull("user")||your conditions)