Spring Rest客户端,将响应对象的一部分解析为Set

时间:2018-08-18 19:33:16

标签: java spring rest jackson

我在春季与杰克逊一起创建了一个简单的休息客户进行培训。我有国家和联赛的两个模特。 国家有:

private Set<League> leagues;

@JsonProperty("country_id")
private long apiCountryId;
@JsonProperty("country_name")
private String name;

当然还有吸气剂和吸气剂 联赛只有ID和名称。 现在我想从apifootbal获取数据,响应如下:

[
    {
        "country_id":"169",
        "country_name":"England",
        "league_id":"62",
        "league_name":"Premier League"
    },
    {
        "country_id":"169",
        "country_name":"England",
        "league_id":"65",
        "league_name":"League 2"
    },
    {
        "country_id":"169",
        "country_name":"England",
        "league_id":"66",
        "league_name":"Nat. League"
    }
]

因此,每个对象的2个前元素相同,每个对象的2个后元素不同,联赛不是独立的对象,所以我不能只是将其取出。现在,我不知道如何创建一个Country对象,其外观将如下所示:

id: 169,
name: England,
league: [{
    id:"62",
    name:"Premier League"
}, {
    id:"65",
    name:"League 2"
}, {
    id:"66",
    name:"Nat. League"
}]

我知道如何创建包含所有数据的国家对象数组,但是我不知道如何将其与一个国家和3个联赛对象分开(以及如何将它们添加到国家对象的集合中)。一种选择是将League_id和League_name添加到国家/地区,然后从它们中反复创建联盟对象,但这是唯一的方法?

1 个答案:

答案 0 :(得分:0)

您可以编写自定义解串器并编写自定义逻辑来处理此类数据。

请参考deserialize xml to pojo using jackson xml mapper(示例为XML,但也可以类似地用于JSON)