gpt4 book ai didi

java - 如何在Jackson ObjectMapper的序列化中添加@JsonIgnore注释字段

转载 作者:行者123 更新时间:2023-12-01 18:06:56 26 4
gpt4 key购买 nike

我需要在通过 Jackson ObjectMapper 序列化对象时添加 @JsonIgnore 带注释的字段。我知道您可能会建议我从我的类中删除 @JsonIgnore 注释,但我需要它们在我的应用程序的某些部分中可以忽略。在我的应用程序的另一部分中,我需要在我的 json 字符串中包含这些 @JsonIgnore 带注释的字段。

最佳答案

您可以定义 SimpleBeanPropertyFilter 和 FilterProvider。

首先使用自定义过滤器注释您的类,如下所示:

@JsonFilter("firstFilter")
public class MyDtoWithFilter {

private String name;

private String anotherName;
private SecondDtoWithFilter dtoWith;

// get set ....
}
@JsonFilter("secondFilter")
public class SecondDtoWithFilter{
private long id;
private String secondName;
}

这就是动态序列化对象的方式。

    ObjectMapper mapper = new ObjectMapper();

// Field that not to be serialised.
SimpleBeanPropertyFilter firstFilter = SimpleBeanPropertyFilter.serializeAllExcept("anotherName");
SimpleBeanPropertyFilter secondFilter = SimpleBeanPropertyFilter.serializeAllExcept("secondName");

FilterProvider filters = new SimpleFilterProvider().addFilter("firstFilter", firstFilter).addFilter("secondFilter", secondFilter);

MyDtoWithFilter dtoObject = new MyDtoWithFilter();
String dtoAsString = mapper.writer(filters).writeValueAsString(dtoObject);

关于java - 如何在Jackson ObjectMapper的序列化中添加@JsonIgnore注释字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35672131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com