Case insensitive JSON to POJO mapping without changing the POJO
This behaviour was introduced in Jackson 2.5.0. You can configure the mapper to be case insensitive using MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES.
For example :
ObjectMapper mapper = new ObjectMapper();mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
You can solve this problem by configuring the mapper, as described by the @Nicolas Riousset.
In addition, since version Jackson 2.9 you can do the same using annotation @JsonFormat(with = JsonFormat.Feature.ACCEPT_CASE_INSENSITIVE_PROPERTIES)
over a field or class, which is a more flexible option.
@JsonFormat(with = JsonFormat.Feature.ACCEPT_CASE_INSENSITIVE_PROPERTIES)private String firstName;
I had the same problem and couldn't find a global way of solving this. However you can have 2 setters per property to achieve this:
@JsonSetter("FIRSTNAME")public void setFirstNameCaps(String firstName) { this.firstName = firstName;}@JsonSetter("firstName")public void setFirstName(String firstName) { this.firstName = firstName;}
Not elegant but will work for both upper and lower case json fields. You can also try the solution mentioned here but this might have a performance overhead