获取对象密钥并将其用作Jackson中的属性

时间:2015-04-16 11:03:31

标签: java json jackson

我目前有这个JSON

输入

[
    {
        "A": {
            "name": "Dog"
        }
    },
    {
        "B": {
            "name": "Cat"
        }
    }
]

我有以下课程:

public class Pet {

  @JsonProperty("name")
  String name = "";

  @JsonIgnore
  String id  = "";
} 

我想要这个输出

  

注意:(这只是反序列化对象的表示)

 Pet [ name = "Dog" , id = "A"],
 Pet [ name = "Cat" , id = "B"]

1 个答案:

答案 0 :(得分:2)

您需要List<Pet>,而不是PetList课程。在这种情况下,杰克逊会做你想做的事情 - [ { pet1..}, {pet2...} ]Pet会有nameid

编辑:如果您需要

[
    {
        "A": {
            "name": "Dog"
        }
    },
    {
        "B": {
            "name": "Cat"
        }
    }
]

然后您需要将Map<String, IdClass>放入Pet,放入此地图"A": new IdObject(),IdObject应该String name = "Dog"