用杰克逊属性替换键的值?

Repalce a value of a key with jackson properties?

我正在使用 Jackson,我想替换我的 json 字符串的值,但我不确定我应该怎么做。 我有一个 json 字符串,例如:

        "body": {
            "name": "oldname",
            "label": "1234"}

我想更改名称的值以使我的 json 像:

        "body": {
            "name": "newname",
            "label": "1234"}

所以我有:

JsonNode parser = objectMapper.readTree(reader);
JsonNode body = parser.path("body");
String newName = "newname";

使用

body.path("name").asText().replace("oldname","newname");

没用。

我该怎么做?

你可以这样做:((ObjectNode) body).put("name", newName);

  • body.path("name").asText().replace("oldname","newname"),

  • 这里只是对asText()方法返回的字符串进行替换操作。它不会修改我们的输入 json.

    ObjectMapper objectMapper = new ObjectMapper(); JsonNode 解析器 = objectMapper.readTree(json); JsonNode body = parser.path("body"); String newName = "newname";

    ((ObjectNode) body).put("name", newName); // body.path("name").asText().replace("name", "newname");

    System.out.println(正文);

进一步阅读: