我知道如何使用带有ObjectNode.put()
的jackson添加属性,但有没有办法在特定位置插入属性?
例如,如果我有这个JsonNode:
{
"property1":"val1",
"property2":"val2",
"property3":"val3"
}
我想要的是:
{
"property1":"val1",
"property4":"val4",
"property2":"val2",
"property3":"val3"
}
我怎样才能与杰克逊实现这一目标?
答案 0 :(得分:2)
JSON规范不要求对象进行排序(它们可能会或可能不依赖于实现),因此您不应该依赖它。但是,数组是明确排序的:
6个对象
对象结构表示为一对围绕零个或多个名称/值对的大括号标记。一个 name是一个字符串。每个名称后面都有一个冒号标记, 将名称与值分开。一个逗号令牌 将值与以下名称分开。
7个数组
阵列结构是一对方括号 围绕零个或多个值的标记。价值观是 被逗号隔开。值的顺序很重要。
(来自http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf)
答案 1 :(得分:2)
使用ObjectMapper
并使用@JsonPropertyOrder(alphabetic=true)
或明确指定的顺序。