2015-04-06 62 views
0

我試圖訪問互聯網上的JSON文件,它有一些空字段像這樣的:Null字段

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

,當我嘗試訪問他們把它們放在一個字符串拋出異常 我用JSONObject.isNull(""), JSONObject.toString().equals("null")而不是其中的工作幫助請!

回答

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

}