首页 > 解决方案 > 如何使用 java 在现有 json 文件中添加属性

问题描述

我需要在系统中已有的 json 文件中添加一个资源类型属性,该属性采用动态值。

我已经尝试编写代码,但它不工作

这是我拥有的 json(我只分享了前几行)

{
  "id": "example",
  "text": {
    "status": "generated",

编写代码后我需要的输出是

{
  "resourceType": "Patient",
  "id": "example",
  "text": {
    "status": "generated",

添加了resourceType字段,我们得到的属性值是根据要求的

标签: java

解决方案


您可以ObjectMapper在 POJO 中使用反序列化它,设置属性并将其反序列化回字符串,例如:

class Example {
    private String id;
    private String resourceType;
    private Text text;

    //getters and setters

}

class Text {

    private String status;

    //getters and setters
}

public static void main(String[] args)  throws Exception { 
    String string = "{\n" + 
            "  \"id\": \"example\",\n" + 
            "  \"text\": {\n" + 
            "    \"status\": \"generated\""
            + "} "
            + "}";
    ObjectMapper objectMapper = new ObjectMapper();
    Example example = objectMapper.readValue(string, Example.class);
    example.setResourceType("Patient");
    System.out.println(objectMapper.writeValueAsString(example));
}

这是杰克逊的文档。


推荐阅读