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

Java 如何使用Jackson注释序列化此JSON?,java,json,serialization,jackson,Java,Json,Serialization,Jackson,我有以下JSON: { fields : { "foo" : "foovalue", "bar" : "barvalue" } } 我写了一篇pojo如下: public class MyPojo { @JsonProperty("fields") private List<Field> fields; static class Field { @JsonProperty

我有以下JSON:

{ 
    fields : {
            "foo" : "foovalue",
            "bar" : "barvalue"
    }
}
我写了一篇pojo如下:

public class MyPojo {

    @JsonProperty("fields") 
    private List<Field> fields;

    static class Field {
        @JsonProperty("foo") private String foo;
        @JsonProperty("bar") private String bar;

        //Getters and setters for those 2
}
公共类MyPojo{
@JsonProperty(“字段”)
私有列表字段;
静态类字段{
@JsonProperty(“foo”)私有字符串foo;
@JsonProperty(“bar”)私有字符串栏;
//这两个项目的接受者和接受者
}
这显然失败了,因为我的json字段“fields”是一个hashmap,而不是一个列表。
我的问题是:是否有任何“神奇”注释可以让Jackson将贴图键识别为pojo属性名称,并将贴图值指定给pojo属性值

我真的不想把我的fields对象作为

private Map<String, String> fields;
私有映射字段;
…因为在我的真实json中,映射值中有复杂的对象,而不仅仅是字符串

谢谢;-)


Philippe

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

public class MyPojo {
  public Fields fields;
}

public class Fields {
  public String foo;
  public String bar;
}
由于对象的结构需要与JSON的结构保持一致。当然,您可以使用setter和getter而不是公共字段(甚至可以使用构造函数而不是setter或字段),这只是最简单的示例

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

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

因为列表映射到JSON数组。

另外,当我尝试序列化这些映射时,我得到:I/O错误:无法从START_对象标记中反序列化java.lang.String的实例