【问题标题】:Jackson ObjectMapper default property orderJackson ObjectMapper 默认属性顺序
【发布时间】:2020-08-23 02:33:58
【问题描述】:
有谁知道在使用 ObjectMapper 将对象序列化为 JSON 时是否存在特定的默认属性顺序(即在没有任何特定排序顺序配置或 @JsonPropertyOrder 注释的情况下?
我还没有在文档中找到任何内容。我可以检查源代码,但我想我会先在这里快速检查一下——我猜它是基于来自反射或内省的任何排序,而我不久前发现的这个 post 表明没有任何保证订购(我可以再次检查来源,但如果有人碰巧知道,那就太好了)。
【问题讨论】:
标签:
java
serialization
jackson
【解决方案1】:
这篇文章仍然是最新的。默认顺序取决于给定的实现(又名版本)。您需要检查实施:
- 在
com.fasterxml.jackson.databind.introspect 包中,例如:POJOPropertiesCollector 类。
- 在
com.fasterxml.jackson.databind.ser 包中,例如:BeanSerializer、BeanSerializerFactory 类。
- 使用的注解,例如:
JsonIgnore。
还取决于:
来自other side:
对象是一组无序的名称/值对。
你不应该依赖它。