如何解决杰克逊@JsonIgnoreProperties不能在引用的类属性上工作?
我正在尝试创建一个模型(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。我想念什么?
解决方法
创建一个将User扩展为以下类别的类:
Actions act = new Actions(webDriver);
act.doubleClick(AutomationUtil.getElement(webDriver,params[0])).build().perform();
,
我正在运行此测试并且可以运行:
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Request {
@JsonIgnoreProperties("id")
User user;
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class User {
String id;
String name;
}
public class TestClass {
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper mapper= new ObjectMapper();
final Request value = Request.builder()
.user(User.builder()
.id("qw423432")
.name("asdasdjsadjasdasd")
.build())
.build();
System.out.println(mapper.writeValueAsString(value));
System.out.println(mapper.readValue("{\"user\":{\"id\": \"a\",\"name\":\"b\"}}",Request.class));
}
}
您认为考试有什么不同吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。