如何使用Jackson注释序列化此JSON?

我有以下JSON:

{ fields : { "foo" : "foovalue", "bar" : "barvalue" } } 

我写了一个pojo如下:

 public class MyPojo { @JsonProperty("fields") private List fields; static class Field { @JsonProperty("foo") private String foo; @JsonProperty("bar") private String bar; //Getters and setters for those 2 } 

这显然失败了,因为我的json字段“fields”是一个hashmap,而不是一个列表。
我的问题是:是否有任何“魔术”注释可以使jackson将地图键识别为pojo属性名称,并将地图值分配给pojo属性值?

PS:我真的不想把我的田野对象当作……

 private Map fields; 

…因为在我的真实世界json中,我在地图值中有复杂的对象,而不仅仅是字符串……

谢谢 ;-)

菲利普

好的,对于那个JSON,您只需稍微修改一下您的示例,例如:

 public class MyPojo { public Fields fields; } public class Fields { public String foo; public String bar; } 

因为对象的结构需要与JSON的结构对齐。 你当然可以使用setter和getter而不是public字段(甚至是构造函数而不是setter或fields),这只是最简单的例子。

您的原始类将生成/使用JSON更像:

 { "fields" : [ { "foo" : "foovalue", "bar" : "barvalue" } ] } 

因为列表映射到JSON数组。