在java中动态更新JSON文档

时间:2015-05-07 14:31:57

标签: java json

我有不同的JSON文档。我想更新指定路径的值。 我怎样才能做到这一点。

以下是JSON的两个示例

{
  "A": [
    [
      [
        [
          {
            ".": null
          }
        ],
        [
          {
            "M": null
          }
        ]
      ]
    ],
    [
      {
        "A": "Update"
      }
    ]
  ]
}

假设我已经给出路径: A [1] [0] .A 给定路径我想将值更新更改为更新

如果数组I使用索引。键由分隔 注意:JSON文档结构未修复。

1 个答案:

答案 0 :(得分:2)

您可以使用Json Path

执行此操作

您需要做的就是定义配置并使用JSON Path结构来编辑特定节点。

Configuration config= Configuration.builder()
    .jsonProvider(new JacksonJsonNodeJsonProvider())
    .mappingProvider(new JacksonMappingProvider())
    .build();

JsonNode newJson=JsonPath.using(config).parse(yourActualJSONString).set("$.A[2].A","UPDATED").json();
System.out.println(newJson.toString());

Refer this for JsonPath syntax.

如果你使用Maven来构建你的项目,那么这就是依赖

<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path</artifactId>
    <version>2.0.0</version>
</dependency>

(或)

Link to the JSON Path JAR file.