我正在尝试访问互联网上的JSON文件,它有一些像我这样的空字段:
{
"c":[
{
"v": "Week 10"
},
null,
null,
null,
null,
{
"v": null
}]
}
当我尝试访问它们以将它们放在字符串上时会抛出异常
我已经使用过JSONObject.isNull(""), JSONObject.toString().equals("null")
而非他们的工作帮助了!
答案 0 :(得分:0)
你可以读这个Json使用getJsonArray来获取一个List,然后循环这个列表。
String jstr = "{'c':[{'v': 'Week 10'}, null,null,null,null,{'v': null}]}";
JSONObject json = JSONObject.fromObject(jstr);
JSONArray jsonArray = json.getJSONArray("c");
for(int i=0;i < jsonArray.size();i++){
System.out.println(jsonArray.get(i).toString());
}
或者你可以把这个json读成bean,下面是示例代码,希望这可以帮到你。
c.java
public class c {
private String v;
public String getV() {
return v;
}
public void setV(String v) {
this.v = v;
}
}
json2Bean.java
public class json2Bean {
private List<c> c;
public List<c> getC() {
return c;
}
public void setC(List<c> c) {
this.c = c;
}
}
json2String.java
public class json2String {
public static void main(String[] args) {
String jstr = "{'c':[{'v': 'Week 10'}, null,null,null,null,{'v': null}]}";
Map<String, Class<?>> m = new HashMap<String, Class<?>>();
m.put("c", c.class);
json2Bean myBean = (json2Bean) JSONObject.toBean(JSONObject.fromObject(jstr), json2Bean.class, m);
for (c e : myBean.getC()) {
if (e != null) {
System.out.println(e.getV());
}
}
}
}