如何忽略@JsonProperty(access = JsonProperty.Access.WRITE_ONLY).&



我有一个pojo,大多数时候我不想将字段写入Json,但对于特定的条件,我想将此值写入Json。例如,我的模型是;

public class Person {
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
public String value;
}

是否可以将对象映射器配置为忽略@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)

创建一个新的ObjectMapper并禁用MapperFeature.USE_ANNOTATIONS.

ObjectMapper objectMapper = new ObjectMapper();
objectMapper = objectMapper.disable(MapperFeature.USE_ANNOTATIONS);
Person person = objectMapper.convertValue(personJson, Person.class);

老实说,我不知道一个相当直接的方法来真正让ObjectMapper忽略一个特定的注释,但为什么不使用@JsonViews?

定义一些视图…

public class Views {
public static class Public {
}
public static class Internal {
}
}

…把它放在你的条件字段…

public class Person {
@JsonView(Views.Internal.class)
public String value;
}

…并将其与映射器序列化…

String result = mapper
.writerWithView(Views.Public.class)
.writeValueAsString(person);

上面的样本取自古老的Baeldung,在那里你可以找到这个解决方案的更漂亮的变体。

相关内容

  • 没有找到相关文章

最新更新