Игнорировать конкретное поле при сериализации с Джексоном
Я использую библиотеку Джексона.
Я хочу игнорировать определенное поле при сериализации / десериализации, так например:
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 ответа:
ок, Так почему-то я пропустил ответ.
следующий код работает, как ожидалось:
@JsonIgnoreProperties({"foobar"}) public static class Foo { public String foo = "a"; public String bar = "b"; public String foobar = "c"; } //Test code ObjectMapper mapper = new ObjectMapper(); Foo foo = new Foo(); foo.foobar = "foobar"; foo.foo = "Foo"; String out = mapper.writeValueAsString(foo); Foo f = mapper.readValue(out, Foo.class);
также стоит отметить, что это решение использует DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES:https://stackoverflow.com/a/18850479/1256179