【发布时间】:2020-09-04 20:47:34
【问题描述】:
我正在尝试创建一个模型 (Request) 类,它会忽略它引用的嵌套类的属性。我被告知我不能以任何方式修改引用模型 (User),所以我尝试的是从 Request 模型中忽略它的属性。
@Data
@Builder
public class Request {
@JsonIgnoreProperties(value = {"id"})
User user;
}
// class I cannot modify
@Data
@Builder
public class User {
String id;
String name;
...
}
在有效负载中,我仍然看到 id 序列化和反序列化,因此注释显然不起作用。如果我将它放在User 的类级别上似乎可以正常工作,但由于我无法修改User,我也尝试过:
@JsonIgnoreProperties(value = {"user.id"})
public class Request {
User user;
以上都不起作用。医生说
从 2.0 开始,这个注解既可以应用于类也可以应用于属性
我在 Spring Boot 项目中使用 Jackson 2.10.2。我错过了什么?
【问题讨论】:
-
你对你的例子没问题,我正在运行同样的,它可以工作,你能在
ObjectMapper mapper= new ObjectMapper();和mapper.writeValueAsString(object)的主要方法中尝试一个本地例子 -
@MarcoPens 我做了
Request request = mapper.readValue("{\"user\":{\"id\": \"a\", \"name\":\"b\"}}", Request.class);和id仍在反序列化。