JSON Array java中的空字段

时间:2015-04-06 23:34:29

标签: java json

我正在尝试访问互联网上的JSON文件,它有一些像我这样的空字段:

{
    "c":[ 
        {
            "v": "Week 10"
        }, 
        null,
        null,
        null,
        null,
        {
            "v": null
        }]
}

当我尝试访问它们以将它们放在字符串上时会抛出异常 我已经使用过JSONObject.isNull(""), JSONObject.toString().equals("null")而非他们的工作帮助了!

1 个答案:

答案 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());
        }
    }
}

}