我正在使用 Jackson 图书馆 .
我想在序列化/反序列化时忽略特定字段,例如:
public static class Foo {
public String foo = "a";
public String bar = "b";
@JsonIgnore
public String foobar = "c";
}
应该给我:
{
foo: "a",
bar: "b",
}
但是我得到了:
{
foo: "a",
bar: "b",
foobar: "c"
}
我正在用这段代码序列化对象:
ObjectMapper mapper = new ObjectMapper();
String out = mapper.writeValueAsString(new Foo());
我的类中字段的真实类型是Log4J Logger类的实例 . 我究竟做错了什么?
3 回答
好的,所以出于某种原因我错过了this answer .
以下代码按预期工作:
另外值得注意的是这个解决方案使用DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES:https://stackoverflow.com/a/18850479/1256179
参考来自How can I tell jackson to ignore a property for which I don't have control over the source code?
你可以使用Jackson Mixins . 例如:
有了这个Mixin
有了这个: