Spring REST return 对象添加到 json 并附加了额外的行

Spring REST return object into json with extra line appended

我一直在尝试 return 一个 JSON 对象以及附加的额外值。

现在这段代码return是一个json对象

@GetMapping("/getProduct")
    public Product getProduct(@RequestParam String productId){
        return productService.getById(productId);
    }

它returns:

{
  "productId": "1",
  "productName": "product1",
  "productPrice": 100.0,
  "imageLink": null
}

但我想添加一个额外的行,所以 returns:

{
  "productId": "1",
  "productName": "product1",
  "productPrice": 100.0,
  "imageLink": null
  "customVariable": somethingsomething
}

我能找到的所有示例要么 return 只有对象,要么从头开始构建 json。有没有办法将变量附加到对象?

1 - 您可以将 customVariable 字段添加到 Product 实体。

public class Product {
    
    private String productId;
    private String productName;
    private Double productPrice;
    private String imageLink;
    private String customVariable;

    public Product() {
    }
    
    // getter/setter ..
}

2 - 如果您想在不修改 Product 实体的情况下添加额外的字段:

@GetMapping("/getProduct")
public String getProduct(@RequestParam String productId){
Product product = productService.getById(productId);
    Product product = productService.getById(productId);
    JsonNode node = objectMapper.convertValue(teacher, JsonNode.class);
    ((ObjectNode)node).put("customVariable", "somethingsomething");
    return node.toString();
}