在 Java 中使用 Rest 模板反序列化字符串数组
Deserializing an array of strings using Rest Template in Java
我正在调用 api,json 作为字符串数组返回。如何反序列化字符串数组?它们不包含任何类型的密钥,因此我反序列化的常用方法不起作用。这是使用英雄联盟 api 的游戏数据。 https://developer.riotgames.com/
JSON api返回的数据:
[
"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 是 returning 数组。所以你必须给 class 类型作为数组。
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);
如果需要,您可以return将此数组作为列表。您可以使用 Arrays.asList(matchstest)
我正在调用 api,json 作为字符串数组返回。如何反序列化字符串数组?它们不包含任何类型的密钥,因此我反序列化的常用方法不起作用。这是使用英雄联盟 api 的游戏数据。 https://developer.riotgames.com/
JSON api返回的数据:
[
"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 是 returning 数组。所以你必须给 class 类型作为数组。
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);
如果需要,您可以return将此数组作为列表。您可以使用 Arrays.asList(matchstest)