我有一组JSON对象。要解析这些数组并存储简单的数据类型值,我必须对键名进行假设并相应地存储它们。
我也知道有时键的值将为null。例如{["promotion":null]}
我将如何解析这个?
如果我尝试访问值为null的键,我会得到一个JSONException。现在这是有道理的,但即使我做if(myJSObject.getString("promotion")!=null)
,我检查时仍然会得到JSON异常
如何在我的代码中对null对象进行条件检查,以便我可以避免JSON异常
答案 0 :(得分:18)
使用JSONObject.optString(String key)
或optString(String key, String default)
。
编辑:......或isNull(String key)
,当然:)
答案 1 :(得分:1)
我认为您需要以不同方式格式化JSON;
获取一系列促销活动
{promotions:[{promotion:null}, {promotion:5000}]}
进行单次促销
{promotion:null}
编辑:根据您使用的json api,可能会进行空检查。 Google的gson库有一个.isJsonNull()
方法
答案 2 :(得分:0)
呃......我认为这不是格式正确的JSON字符串。 []表示一个数组,它没有像对象那样的任何键=>值配对。我认为您想要的是{"promotion":null}
,然后您的代码段可能会起作用。