小编Bil*_*eil的帖子

如何创建确定性 Jackson ObjectMapper?

我希望能够跨 JVM 生成任何 Java POJO 的 MD5 校验和。该方法是将对象序列化为 JSON,然后对 JSON 进行 MD5。

问题是 Jackson 的 JSON 序列化不是确定性的,主要是因为许多集合不是确定性的。

ObjectMapper mapper = new ObjectMapper()                                               
    .configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true)                                           
    .configure(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY, true)
    ... // all other custom modules / features
;
Run Code Online (Sandbox Code Playgroud)

这两个功能解决了在 POJO 和 Map 上保持字段排序的两个问题。

下一个挑战是动态修改任何集合并对其进行排序。这要求每个集合中的每个元素都是可排序的,但我们假设现在可以。

有没有办法拦截每个集合并在序列化之前对其进行排序?

java json jackson

7
推荐指数
1
解决办法
3340
查看次数

标签 统计

jackson ×1

java ×1

json ×1