在作接口開發經常會用到JSON數據格式,可是在有些時間類型屬性爲null時轉換會報錯,解決方法我這裏是把爲null的去掉。json
//正經常使用jsonObject序列化後獲得字符串 //{id:18, name:"張山"} // 如今若是name=null的話 我不想讓它系列化 我想返回這樣的結果{id:18},
異常以下:app
處理方法:ide
很簡單net.sf.json在格式化中能夠傳遞一個JsonConfig,實現setJsonPropertyFilter方法而後修改apply方法便可。code
JsonConfig config = new JsonConfig(); config.setJsonPropertyFilter(new PropertyFilter() { @Override public boolean apply(Object source, String name, Object value){ return value.equals("null"); } }); JSONArray jsonArray = JSONArray.fromObject(object, config); System.out.println(jsonArray);
JDK1.8中有更風騷的寫法:接口
JsonConfig config = new JsonConfig(); config.setJsonPropertyFilter((source, name, value) -> value.equals("null")); JSONArray jsonArray = JSONArray.fromObject(object, config); System.out.println(jsonArray);