我有一个pojo,大多数时候我不想写一个字段到Json,但是对于一个特定的条件我想写这个值到json。
public class Person { @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) public String value; }
是否可以将对象Map器配置为忽略@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
eaf3rand1#
创建新的对象Map器并禁用Map器功能。USE_ANNOTATIONS。
ObjectMapper objectMapper = new ObjectMapper(); objectMapper = objectMapper.disable(MapperFeature.USE_ANNOTATIONS); Person person = objectMapper.convertValue(personJson, Person.class);
jhiyze9q2#
老实说,我不知道一个相当直接的方法,真正让ObjectMapper忽略一个特定的注解,但为什么不使用@JsonView?定义一些视图...
ObjectMapper
@JsonView
public class Views { public static class Public { } public static class Internal { } }
...将其放在条件字段中...
public class Person { @JsonView(Views.Internal.class) public String value; }
...并使用Map器序列化它...
String result = mapper .writerWithView(Views.Public.class) .writeValueAsString(person);
上面的样本取自好的老Baeldung,在那里你可以找到这个解决方案的更好的变体。
2条答案
按热度按时间eaf3rand1#
创建新的对象Map器并禁用Map器功能。USE_ANNOTATIONS。
jhiyze9q2#
老实说,我不知道一个相当直接的方法,真正让
ObjectMapper
忽略一个特定的注解,但为什么不使用@JsonView
?定义一些视图...
...将其放在条件字段中...
...并使用Map器序列化它...
上面的样本取自好的老Baeldung,在那里你可以找到这个解决方案的更好的变体。