我有这个文件(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”?
答案 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"));