首页 > 解决方案 > 如何仅在从用户获取输入而不是在发送响应时忽略 POJO 值

问题描述

要求:我想忽略从用户输入(JSON)中读取几个参数,但我想在响应中包含相同的参数。目前,我必须使用在接收和发送中都忽略的当前代码。

也就是说,在读取用户输入时它会跳过Order Id, Order Status等,而在发送响应 JSON 时将不会有Order Id, Order Status. 我想在阅读时跳过,我想在发送回复时包括在内。

@JsonIgnoreProperties(ignoreUnknown = true, value = { "Order Id", "Order Status", "Created Date", "Last Modified" })
public class OrderDTO implements Serializable {


@JsonProperty("Order Id") 
private Long orderId;
@JsonProperty("Address")
AddressDTO addressDto;

@JsonProperty("Order Status")
private String status;
@JsonProperty(value = "Customer Id") 
@Size(min = 3, message = "Customer Id Should Be Greater Than 3 Characters")
@NotNull(message = "Customer Id Should Not Be Null.")
private String userId;

您的努力将受到高度赞赏。谢谢你。

标签: jsonrestspring-boot

解决方案


从 2.6 版本开始:更直观的方式是使用com.fasterxml.jackson.annotation.JsonProperty字段上的注解。尝试添加

@JsonProperty(access = Access.READ_ONLY)
private Long orderId;

推荐阅读