我有JSON文件:
{
"id":1,
"name":"abc",
"addressDetails":
{
"City":"NewYork"
}
}
我想在节点'addressDetails'中再添加一个键值(“pinCode”:“414141”)。
我尝试使用:
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(new File("D://test.json"));
ObjectNode node = mapper.createObjectNode();
node.with("addressDetails").put("pinCode", "414141");
但它没有被添加,我有什么方法可以做到这一点吗?
答案 0 :(得分:1)
你可以尝试
你应该修改文件路径
ObjectMapper mapper = new ObjectMapper();
ObjectNode nodes = mapper.readValue(new File("D:\\test.txt"),
ObjectNode.class);
nodes.with("addressDetails").put("pinCode", "414141");
mapper.writer().writeValue(new File("D:\\test.txt"), nodes);
答案 1 :(得分:0)
您的代码的问题在于您将值添加到新的JsonObject(node
),而不是您已经读过的那个(root
)。所以基本上,你和& #39;我必须将其添加到root
。但是为了能够做到这一点,您必须将其强制转换为ObjectNode
,因为JsonNode
不提供任何方法来添加到节点。
所以,尝试以下内容:
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(new File("D://test.json"));
ObjectNode node = (ObjectNode) root;
node.with("addressDetails").put("pinCode", "414141");
mapper.writer().writeValue(new File("D:\\test.txt"), node);