Игнорировать определенное поле при сериализации с помощью 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. Что я делаю неправильно?
Ответы
Ответ 1
Хорошо, поэтому я почему-то пропустил этот ответ.
Следующий код работает так, как ожидалось:
@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);
Ответ 2
Также стоит отметить это решение, используя DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES: fooobar.com/info/74393/...