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