It appears Jackson 2.4.5 and 2.5.1 behave a little differently when handling Map.Entry.
Let’s assume we have the following bean:-
public class MyBean {
private Map.Entry<String, String> entry;
public Map.Entry<String, String> getEntry() {
return entry;
}
public void setEntry(Map.Entry<String, String> entry) {
this.entry = entry;
}
}
We have a simple Spring MVC rest controller that creates this bean and returns the JSON data back to the client:-
@RequestMapping(value = "/map", method = RequestMethod.GET)
public ResponseEntity map() {
final MyBean myBean = new MyBean();
myBean.setEntry(new AbstractMap.SimpleImmutableEntry<String, String>("a", "1"));
return new ResponseEntity<MyBean>(myBean, HttpStatus.OK);
}
Jackson 2.4.5 generates the following JSON:-
{
"entry":
{
"key": "a",
"value": "1"
}
}
Jackson 2.5.1 generates the following JSON:-
{
"entry":
{
"a": "1"
}
}
Leave a Reply