去掉JSON中值爲null的

在作接口開發經常會用到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);
相關文章
相關標籤/搜索