用杰克逊属性替换键的值?
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(正文);
进一步阅读:
我正在使用 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(正文);
进一步阅读: