簡體   English   中英

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

[英]How can I serialize this JSON using Jackson annotations?

我有以下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
}

這顯然會失敗,因為我的json字段“fields”是一個hashmap,而不是一個列表。
我的問題是:是否有任何“魔術”注釋可以使傑克遜將地圖鍵識別為pojo屬性名稱,並將地圖值分配給pojo屬性值?

PS:我真的不想讓我的田野對象......

private Map<String, String> 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數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM