赞
踩
fastjson支持定制序列化,提供定制序列化的方式包括:
- // 根据PropertyName判断是否序列化
- public interface PropertyPreFilter extends SerializeFilter {
- boolean apply(JSONSerializer serializer, Object object, String name);
- }
-
- // 根据PropertyName和PropertyValue来判断是否序列化
- public interface PropertyFilter extends SerializeFilter {
- boolean apply(Object object, String propertyName, Object propertyValue);
- }
-
- // 修改Key,如果需要修改Key,process返回值则可
- public interface NameFilter extends SerializeFilter {
- String process(Object object, String propertyName, Object propertyValue);
- }
-
- // 修改Value
- public interface ValueFilter extends SerializeFilter {
- Object process(Object object, String propertyName, Object propertyValue);
- }
-
- // 序列化时在最前添加内容
- public abstract class BeforeFilter implements SerializeFilter {
- protected final void writeKeyValue(String key, Object value) { ... }
- // 需要实现的抽象方法,在实现中调用writeKeyValue添加内容
- public abstract void writeBefore(Object object);
- }
-
-
- // 序列化时在最前添加内容
- public abstract class AfterFilter implements SerializeFilter {
- protected final void writeKeyValue(String key, Object value) { ... }
- // 需要实现的抽象方法,在实现中调用writeKeyValue添加内容
- public abstract void writeAfter(Object object);
- }

以上的SerializeFilter在JSON.toJSONString中可以使用。
- SerializeFilter filter = ...; // 可以是上面5个SerializeFilter的任意一种。
- JSON.toJSONString(obj, filter);
Last edited by 温高铁
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。