在使用Java中的Bean對象轉化為JSON字符串的過程中,出現不可避免的問題就是空值的處理。空值包括null值和空字符串。
如果Bean對象中存在空值,轉化為JSON字符串時將會出現一些不可預知的問題,比如下面這個例子:
{ "name": "Tom", "address": null, "age": 20, "sex": "" }
以上JSON字符串中,address值為null,sex值為空字符串。在某些情況下,我們需要忽略這些值的輸出,可以考慮使用JSON處理框架中提供的過濾器來實現。
下面以Fastjson為例,介紹如何使用過濾器過濾掉空值:
// 創建JSON配置對象 FastJsonConfig config = new FastJsonConfig(); // 創建ValueFilter,在輸出值之前過濾 ValueFilter filter = new ValueFilter() { public Object process(Object object, String name, Object value) { // 如果value為空值,返回null,表示忽略該值的輸出 if (value == null || value.equals("")) { return null; } return value; } }; // 將過濾器添加到配置對象中 config.setSerializeFilters(filter); // 創建JSON對象 JSONObject jsonObject = JSON.parseObject(bean, config); // 轉化為JSON字符串 String text = jsonObject.toJSONString();
以上代碼中,我們創建了一個ValueFilter,該過濾器會在輸出值之前進行過濾。如果value值為空值,我們返回null,表示忽略該值的輸出。
通過上面的方法,我們就可以實現對空值的過濾,避免了輸出異常的JSON字符串。
上一篇html 數學代碼大全
下一篇mysql取半小時的數據