在Java中使用Rest Template反序列化字符串数组



我正在进行一个api调用,json以字符串数组的形式返回。如何反序列化字符串数组?它们不包括任何类型的键,所以我反序列化的常用方法不起作用。这是使用传奇联盟的api来获取游戏数据。https://developer.riotgames.com/

api返回的JSON数据:

[
"NA1_3946470802",
"NA1_3946414706",
"NA1_3945276842",
"NA1_3945236107"
]

代码片段:

public class MatchList {
public List<String> matches;
public MatchList(List<String> matches) {}
}
@RestController
@RequestMapping("/api")
public class SummonerController {
private RestTemplate restTemplate = new RestTemplate();
@RequestMapping("/summoner/test/{summonerName}")
public MatchList getSummonerInfoTest(@PathVariable String summonerName){
MatchList matchstest = restTemplate.getForObject("https://americas.api.riotgames" +
".com/lol/match/v5/matches/by-puuid/"+ summoner.getPuuid()+ "/ids? 
start=0&count=100&api_key="+apikey,
MatchList.class);
return matchstest;
}
}

我尝试过使用:

private List<String> matches;
public List<String> matches;
public ArrayList<String> matches;
public String[] matches;

您的api正在返回数组。因此,您必须将类类型指定为数组。

String[] matchstest = restTemplate.getForObject("https://americas.api.riotgames" +
".com/lol/match/v5/matches/by-puuid/"+ summoner.getPuuid()+ "/ids? 
start=0&count=100&api_key="+apikey,
String[].class);

如果需要,可以将此数组作为列表返回。您可以使用Arrays.asList(matchstest)

最新更新