Java 使用JsonNode编辑json对象中嵌套数组中的对象
我试图在下面的json中编辑嵌套数组项field2:desc 2到field2:xxxx中的对象:Java 使用JsonNode编辑json对象中嵌套数组中的对象,java,json,jackson,jsonnode,Java,Json,Jackson,Jsonnode,我试图在下面的json中编辑嵌套数组项field2:desc 2到field2:xxxx中的对象: { "item1": 123, "item2": "desc 1", "item3": [ { "field1": "desc 1", "field2": "desc 2" } ] }
{
"item1": 123,
"item2": "desc 1",
"item3": [
{
"field1": "desc 1",
"field2": "desc 2"
}
]
}
我试过这个
产出为:
{
"item1": 123,
"item2": "desc 1",
"item3": [
{
"field1": "desc 1",
"field2": "desc 2"
}
],
"field2": "desc xxxx"
}
首先访问包装的数组,然后修改第0个元素:
JsonNode root = objectMapper.readTree(new File(filePath));
ObjectNode item3element0 = (ObjectNode) root.get("item3").get(0);
item3element0.put("field2", "desc xxxx");
…或构造ArrayNode,向其中添加元素,然后将其添加到根:
JsonNode root = objectMapper.readTree(new File(filePath));
ArrayNode newArr = objectMapper.createArrayNode();
ObjectNode field2Element = objectMapper.createObjectNode();
field2Element.put("field2", "desc xxxx");
newArr.add(field2Element);
root.set("item3", newArr);
首先访问包装的数组,然后修改第0个元素:
JsonNode root = objectMapper.readTree(new File(filePath));
ObjectNode item3element0 = (ObjectNode) root.get("item3").get(0);
item3element0.put("field2", "desc xxxx");
…或构造ArrayNode,向其中添加元素,然后将其添加到根:
JsonNode root = objectMapper.readTree(new File(filePath));
ArrayNode newArr = objectMapper.createArrayNode();
ObjectNode field2Element = objectMapper.createObjectNode();
field2Element.put("field2", "desc xxxx");
newArr.add(field2Element);
root.set("item3", newArr);
使用ObjectMapper和JsonNode复杂json数组和对象更新json
*
解决方案:
结果:
使用ObjectMapper和JsonNode复杂json数组和对象更新json
*
解决方案:
结果:
我们可以在这里使用ObjectNoderoot.putArrayitem3吗?当然,如果您想在其中放入一个空的ArrayNode并通过它进行添加,这将起作用。或者,您可以从头构造ArrayNode,并以这种方式对其进行修改。可能还有其他方法。我们可以在这里使用ObjectNoderoot.putArrayitem3吗?当然,如果您想放入一个空的ArrayNode并通过它进行添加,这将起作用。或者,您可以从头构造ArrayNode,并以这种方式对其进行修改。可能还有其他一些方法可以做到这一点。您正在根节点中编辑get item3节点及其第一个对象并编辑root.getitem3.get0此工作对象节点root.getitem3.get0.putfield2,xxxx;您正在根节点get item3节点及其第一个对象中编辑,并编辑root.getitem3.get0此works ObjectNode root.getitem3.get0.putfield2,xxxx;
{"item1":123,"item2":"desc 1","item3":[{"field1":"desc 1","field2":"xxxxxxxxxxxxxx"}]}