I am serializing a POJO into JSON using Jackson 2.1.4 but I want to ignore a particular field from getting serialized. I used transient but still it is serializing that element.
The reason Jackson serializes the transient
member is because the getters are used to determine what to serialize, not the member itself - and since y
has a public getter, that gets serialized.
If you want to change that default and have Jackson use fields - simply do:
om.setVisibilityChecker(
om.getSerializationConfig()
.getDefaultVisibilityChecker()
.withFieldVisibility(JsonAutoDetect.Visibility.ANY)
.withGetterVisibility(JsonAutoDetect.Visibility.NONE)
);
Another way to ignore a property on serialization is to do it directly on the class:
@JsonIgnoreProperties(value = { "y" })
public class TestElement {
...
And another way is directly on the field:
public class TestElement {
@JsonIgnore
private String y;
...
Hope this helps.