赞
踩
当使用 com.alibaba.fastjson.JSONObject.toJSONString(Object) 将JavaBean实体转换为json的时候,怎么忽略掉某些属性不参与序列化等。
SerializerFeature.PrettyFormat
return JSONObject.toJSONString(petShop,SerializerFeature.PrettyFormat);
@JSONField(serialize = false)
@JSONField(serialize = false)
排除 isXXX/is_XXX 方法或某个指定属性@JsonIgnore
也行,但是不是alibaba包下的,所以用了也不生效@JSONField(format = "yyyy-MM-dd")
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
SerializerFeature.WriteDateUseDateFormat
我们刚加的单个注解都去掉,然后用SerializerFeature测试。
忽略isXXX/is_XXX 方法或者更多其他
直接用:SerializerFeature.IgnoreNonFieldGetter
SerializerFeature.WriteMapNullValue
SerializeFilter
定制扩展序列化,我们使用修改属性的值 ValueFilter
(将空字符串的值,修改为null),而 SerializerFeature 对null 有默认排除,二者结合,搞定!如下:JSONObject.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";//自定义格式 SerializerFeature[] serializerFeatures = new SerializerFeature[]{ SerializerFeature.PrettyFormat, SerializerFeature.IgnoreNonFieldGetter, //SerializerFeature.WriteDateUseDateFormat,//默认 yyyy-MM-dd HH:mm:ss 的格式 }; // return JSONObject.toJSONString(petShop,serializerFeatures); return JSONObject.toJSONString(petShop,filter,serializerFeatures); } private static ValueFilter filter = new ValueFilter () { public Object process(Object obj, String key, Object value) { if(value==null){ //return "is null ???? I want to change the value!!!"; }else if("".equals(value.toString())){ return null; } return value; } };
代码可优化,想配置管理自己弄就行!
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.76</version>
</dependency>
JSONObject.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。