Java 使用Spring引导和RestTemplate使用嵌套JSON数组

Java 使用Spring引导和RestTemplate使用嵌套JSON数组,java,json,spring,rest,spring-boot,Java,Json,Spring,Rest,Spring Boot,我试图在Spring引导应用程序中使用HTTP GET请求使用API,该请求返回以下JSON。我遇到的问题是,“playerentry”级别中包含一个JSON数组,其中包含未命名/未标题的球员和球队信息对。对于Spring,通常会为JSON的每一层创建一个java类,并使用@JsonProperty()注释指定JSON的哪一部分生成java对象。由于JSON数组中没有包含对的名称,并且不确定如何正确设置playerentry数组和包含的数组对的java类,我无法使用RestTemplate和Re

我试图在Spring引导应用程序中使用HTTP GET请求使用API,该请求返回以下JSON。我遇到的问题是,“playerentry”级别中包含一个JSON数组,其中包含未命名/未标题的球员和球队信息对。对于Spring,通常会为JSON的每一层创建一个java类,并使用@JsonProperty()注释指定JSON的哪一部分生成java对象。由于JSON数组中没有包含对的名称,并且不确定如何正确设置playerentry数组和包含的数组对的java类,我无法使用RestTemplate和RestTemplateBuilder来使用此JSON。任何帮助都将不胜感激

{
    "rosterplayers": {
        "lastUpdatedOn": "2018-02-25 4:24:30 PM",
        "playerentry": [
            {
                "player": {
                    "ID": "10138",
                    "LastName": "Abrines",
                    "FirstName": "Alex"
                },
                "team": {
                    "ID": "96",
                    "City": "Oklahoma City",
                    "Name": "Thunder",
                    "Abbreviation": "OKL"
                }
            },
            {
                "player": {
                    "ID": "9466",
                    "LastName": "Acy",
                    "FirstName": "Quincy"
                },
                "team": {
                    "ID": "84",
                    "City": "Brooklyn",
                    "Name": "Nets",
                    "Abbreviation": "BRO"
                }
            },
            {
                "player": {
                    "ID": "9390",
                    "LastName": "Adams",
                    "FirstName": "Steven"
                },
                "team": {
                    "ID": "96",
                    "City": "Oklahoma City",
                    "Name": "Thunder",
                    "Abbreviation": "OKL"
                }
            },
            {
                "player": {
                    "ID": "9375",
                    "LastName": "Afflalo",
                    "FirstName": "Arron"
                },
                "team": {
                    "ID": "103",
                    "City": "Sacramento",
                    "Name": "Kings",
                    "Abbreviation": "SAC"
                }
            },
            {
                "player": {
                    "ID": "9357",
                    "LastName": "Ajinca",
                    "FirstName": "Alexis"
                },
                "team": {
                    "ID": "110",
                    "City": "New Orleans",
                    "Name": "Pelicans",
                    "Abbreviation": "NOP"
                }
            },
            {
                "player": {
                    "ID": "9272",
                    "LastName": "Aldrich",
                    "FirstName": "Cole"
                },
                "team": {
                    "ID": "100",
                    "City": "Minnesota",
                    "Name": "Timberwolves",
                    "Abbreviation": "MIN"
                }
            },
            {
                "player": {
                    "ID": "9480",
                    "LastName": "Aldridge",
                    "FirstName": "LaMarcus"
                },
                "team": {
                    "ID": "106",
                    "City": "San Antonio",
                    "Name": "Spurs",
                    "Abbreviation": "SAS"
                }
            },
            {
                "player": {
                    "ID": "9454",
                    "LastName": "Alexander",
                    "FirstName": "Cliff"
                },
                "team": {
                    "ID": "95",
                    "City": "Orlando",
                    "Name": "Magic",
                    "Abbreviation": "ORL"
                }
            },
            {
                "player": {
                    "ID": "9299",
                    "LastName": "Allen",
                    "FirstName": "Tony"
                },
                "team": {
                    "ID": "107",
                    "City": "Memphis",
                    "Name": "Grizzlies",
                    "Abbreviation": "MEM"
                }
            }
        ]
    }
}
这应该行得通

class Roasterplayers {
    String lastUpdatedOn;
    List<PlayerEntry> playerentry;
}


class PlayerEntry {
    Player player;
    Team team;
}

class Player {

    @JsonProperty("ID")
    String id;
    @JsonProperty("LastName")
    String lastName;
    @JsonProperty("FirstName")
    String firstName;
}

class Team {
    @JsonProperty("ID")
    String id;
    @JsonProperty("City")
    String city;
    @JsonProperty("Name")
    String name;
    @JsonProperty("Abbreviation")
    String abbreviation;
}
class-layers{
字符串lastUpdateOn;
列表播放尝试;
}
班级游戏{
玩家;
团队;
}
职业选手{
@JsonProperty(“ID”)
字符串id;
@JsonProperty(“姓氏”)
字符串lastName;
@JsonProperty(“名字”)
字符串名;
}
班队{
@JsonProperty(“ID”)
字符串id;
@JsonProperty(“城市”)
字符串城市;
@JsonProperty(“名称”)
字符串名;
@JsonProperty(“缩写”)
字符串缩写;
}
确保每个字段都有setter和getter,这应该可以工作

class Roasterplayers {
    String lastUpdatedOn;
    List<PlayerEntry> playerentry;
}


class PlayerEntry {
    Player player;
    Team team;
}

class Player {

    @JsonProperty("ID")
    String id;
    @JsonProperty("LastName")
    String lastName;
    @JsonProperty("FirstName")
    String firstName;
}

class Team {
    @JsonProperty("ID")
    String id;
    @JsonProperty("City")
    String city;
    @JsonProperty("Name")
    String name;
    @JsonProperty("Abbreviation")
    String abbreviation;
}
class-layers{
字符串lastUpdateOn;
列表播放尝试;
}
班级游戏{
玩家;
团队;
}
职业选手{
@JsonProperty(“ID”)
字符串id;
@JsonProperty(“姓氏”)
字符串lastName;
@JsonProperty(“名字”)
字符串名;
}
班队{
@JsonProperty(“ID”)
字符串id;
@JsonProperty(“城市”)
字符串城市;
@JsonProperty(“名称”)
字符串名;
@JsonProperty(“缩写”)
字符串缩写;
}

确保每个字段都有setter和getter

我尝试了这种结构,但遇到的第一个问题是,在代表整个JSON的RosterPlayers类周围必须有一个包装器类。在我这样做之后,我能够访问JSON。请详细说明如何在spring boot应用程序中使用此结构,我遇到的第一个问题是,RosterPlayers类周围必须有一个代表整个JSON的包装器类。在我这样做之后,我能够访问JSON。请详细说明如何在spring boot应用程序中使用它