-2

我有 json 文件。现在,字段名称"refs"并非在每个数组中都可用。那么,解析这种字段的过程是什么。因为,当我尝试解析 json 文件时,第一个数组没有"refs"字段,但第二个数组没有。这就是它抛出空指针异常的原因。我试过这段代码

 JSONArray jsonArray = new JSONArray(tokener);

 for (int index = 0; index < jsonArray.length(); index++) {

       JSONObject jsonObject = jsonArray.getJSONObject(index);

          if(!jsonObject.getString("refs").equalsIgnoreCase(null)){
                String refs = jsonObject.getString("refs");
                    }
        }

但是,它不起作用。处理这种情况的方法是什么或解决该问题的方法是什么。谢谢你。

4

4 回答 4

2

如果您不确定密钥是否存在,则必须先致电检查

于 2013-08-02T05:04:50.747 回答
2

问题出在你的 if 语句中......

if(!jsonObject.getString("refs").equalsIgnoreCase(null)){

你应该写的是:

if(!jsonObject.has("refs")){

希望有帮助

于 2013-08-02T05:07:13.717 回答
1

尝试这个

if(jsonObject.has("refs")){

  refs = jsonObject.getString("refs");
}
于 2013-08-02T05:21:45.380 回答
1

你可以通过像这样替换'if'条件来做到这一点,它对我有用,希望对你也有用。

if(jObj.optString("refs") != null)
于 2013-08-02T05:22:29.450 回答