如何更改ArrayNode中的元素值

时间:2015-07-23 08:39:26

标签: java json jackson

我有这个文件(example.json):

{
    "messages" : [ "msg 1", "msg 2", "msg 3" ],
}

然后我创建一个像这样的JsonNode:

        BufferedReader fileReader = new BufferedReader(new FileReader("example.json"));
        JsonNode rootNode = mapper.readTree(fileReader);

如何在不删除元素并添加值为“msg 1A”的新元素的情况下,将数组元素值从“msg 1”更改为“msg 1A”?

1 个答案:

答案 0 :(得分:4)

如果要更改messages数组的第一个元素,请使用以下代码:

((ArrayNode) rootNode.withArray("messages")).set(0, new TextNode("msg 1A"));

<强> UPD

另一个版本,删除然后插入元素(这是你试图避免的):

((ArrayNode) rootNode.withArray("messages")).remove(0);
((ArrayNode) rootNode.withArray("messages")).insert(0, new TextNode("msg 1A"));