当前位置:   article > 正文

FastJson定制序列化_fastjson2 按key排序

fastjson2 按key排序

fastjson支持定制序列化,提供定制序列化的方式包括:

  • 根据Key判断是否需要序列化
  • 根据Key和Value判断是否需要序列化
  • 序列化时修改Key
  • 序列化时修改Value
  • 序列化时添加KeyValue

API

  1. // 根据PropertyName判断是否序列化
  2. public interface PropertyPreFilter extends SerializeFilter {
  3. boolean apply(JSONSerializer serializer, Object object, String name);
  4. }
  5. // 根据PropertyName和PropertyValue来判断是否序列化
  6. public interface PropertyFilter extends SerializeFilter {
  7. boolean apply(Object object, String propertyName, Object propertyValue);
  8. }
  9. // 修改Key,如果需要修改Key,process返回值则可
  10. public interface NameFilter extends SerializeFilter {
  11. String process(Object object, String propertyName, Object propertyValue);
  12. }
  13. // 修改Value
  14. public interface ValueFilter extends SerializeFilter {
  15. Object process(Object object, String propertyName, Object propertyValue);
  16. }
  17. // 序列化时在最前添加内容
  18. public abstract class BeforeFilter implements SerializeFilter {
  19. protected final void writeKeyValue(String key, Object value) { ... }
  20. // 需要实现的抽象方法,在实现中调用writeKeyValue添加内容
  21. public abstract void writeBefore(Object object);
  22. }
  23. // 序列化时在最前添加内容
  24. public abstract class AfterFilter implements SerializeFilter {
  25. protected final void writeKeyValue(String key, Object value) { ... }
  26. // 需要实现的抽象方法,在实现中调用writeKeyValue添加内容
  27. public abstract void writeAfter(Object object);
  28. }

以上的SerializeFilter在JSON.toJSONString中可以使用。

  1. SerializeFilter filter = ...; // 可以是上面5个SerializeFilter的任意一种。
  2. JSON.toJSONString(obj, filter);
Last edited by 温高铁
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/997931
推荐阅读
相关标签
  

闽ICP备14008679号