SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullListAsEmpty,全是忽悠人的,都不验证下,只知道转载。
WriteMapNullValue只是可以让null的值显示出来,默认是过滤掉null值的
上面是加SerializerFeature参数,其他还可以加@H_301_29@SerializeFilter参数
用法如下:
JsonObject:
public static void main(String[] args) { JSONObject dataChange = new JSONObject(); dataChange.put(@H_403_49@"column",@H_403_49@"test"); dataChange.put(@H_403_49@"oldVal",null); dataChange.put(@H_403_49@"newVal",@H_403_49@"2"); ValueFilter valueFilter = new ValueFilter() { @Override public Object process(Object object,String name,Object value) { if (value == null) return @H_403_49@""; return value; } }; String result = JSONObject.toJSONString(dataChange,valueFilter); System.out.print(result); }
JsonArray:
public static void main(String[] args) { List<CriticalOperInfoVo> criticalOperInfoList = new ArrayList<CriticalOperInfoVo>(); criticalOperInfoList.add(new CriticalOperInfoVo(@H_403_49@"firstname",@H_403_49@"1",@H_403_49@"2")); criticalOperInfoList.add(new CriticalOperInfoVo(@H_403_49@"lastname",null,@H_403_49@"2")); if (criticalOperInfoList != null && criticalOperInfoList.size() > 0) { JSONArray dataChanges = new JSONArray(); for (CriticalOperInfoVo criticalOperInfo : criticalOperInfoList) { JSONObject dataChange = new JSONObject(); dataChange.put(@H_403_49@"column",criticalOperInfo.getColumn()); dataChange.put(@H_403_49@"oldVal",criticalOperInfo.getOldVal()); dataChange.put(@H_403_49@"newVal",criticalOperInfo.getNewVal()); dataChanges.add(dataChange); } ValueFilter valueFilter = new ValueFilter() { @Override public Object process(Object object,Object value) { if (value == null) return @H_403_49@""; return value; } }; String result = JSONArray.toJSONString(dataChanges, valueFilter); System.out.print(result); } }