【发布时间】:2021-09-10 16:27:05
【问题描述】:
我想知道 jackson 库中的排序是如何工作的。 我拥有的是一个像下面这样的 json(不存在与这个 json 等效的 POJO),我想对数组“ItemProps”进行排序,即使有时它可能包含不同顺序的属性。
{
"ItemId":"<item_id>",
"ItemProps":[
{
"key":"property_key",
"value":"property_value"
},
{
"key":"property_key",
"value":"property_value"
}
]
经过大量阅读,我发现这可以通过将属性设置为 true 来创建确定性映射器对象来实现
- ORDER_MAP_ENTRIES_BY_KEYS
- SORT_PROPERTIES_ALPHABETICALLY
我编写了一些单元测试,发现它按预期工作。 但我想知道 ItemProps 的排序如何在内部工作? 是由
- 单个 json 对象的哈希码
- 将一个或多个字段作为参考并进行比较?
我搜索了它,但找不到任何东西。 任何指向任何文章或答案的指针都会有所帮助。 谢谢。
但我仍然对这种排序的工作原理感到好奇。
【问题讨论】:
标签: java json jackson jackson-databind fasterxml