使用jackson json将特定位置的属性添加到json字符串

时间:2016-05-07 22:08:31

标签: java json jackson

我知道如何使用带有ObjectNode.put()的jackson添加属性,但有没有办法在特定位置插入属性? 例如,如果我有这个JsonNode:

{
    "property1":"val1",
    "property2":"val2",
    "property3":"val3"
}

我想要的是:

{
    "property1":"val1",
    "property4":"val4",
    "property2":"val2",
    "property3":"val3"
}

我怎样才能与杰克逊实现这一目标?

2 个答案:

答案 0 :(得分:2)

JSON规范不要求对象进行排序(它们可能会或可能不依赖于实现),因此您不应该依赖它。但是,数组是明确排序的:

  

6个对象

     

对象结构表示为一对围绕零个或多个名称/值对的大括号标记。一个   name是一个字符串。每个名称后面都有一个冒号标记,   将名称与值分开。一个逗号令牌   将值与以下名称分开。

     

7个数组

     

阵列结构是一对方括号   围绕零个或多个值的标记。价值观是   被逗号隔开。值的顺序很重要。

(来自http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf

答案 1 :(得分:2)

使用ObjectMapper并使用@JsonPropertyOrder(alphabetic=true)或明确指定的顺序。