问题
Consider the following class:
private static class Widget {
@JsonProperty
private String id = "ID";
@JsonIgnore
private String jsonIgnored = "JSON_IGNORED";
private String noAnnotation = "NO_ANNOTATION";
}
If I serialize this using Jackson, I will end up with this string:
{"id":"ID"}
What is the difference between a property with @JsonIgnore
and one with no annotation?
回答1:
The @JsonIgnore annotated properties/methods will not be serialized/deserialized by Jackson. While the not annotated will be.
The problem here is that Jackson usually looks for the getters, and you didn't specified any getters. So that's why it's only serialized the @JsonProperty annotated property.
If you implement the 3 getters for the 3 properties, your json will look like this:
{
"id":"ID",
"noAnnotation":"NO_ANNOTATION"
}
来源:https://stackoverflow.com/questions/38077728/what-is-the-difference-between-a-property-with-jsonignore-and-one-with-no-annot