JSON 응답을 RiotAPI에서 내 BasicSummoner 객체로 변환하려면 Spring의 RestTemplate을 사용하고 있습니다. 문제는 JSON 응답을 내 개체로 변환하는 것입니다. getForObject()를 호출하면 객체의 모든 필드가 null/비어 있습니다. Riot의 API를 사용한 첫 번째 Spring 프로젝트 및 처음이므로 도움이 될만한 의견이 있습니다.Spring RestTemplate을 사용하여 Riot API 요청을 객체에 매핑하는 방법
나는이 같은 JSON의 resonse가 올바른지 확인하고 보이는 한 : 객체 BasicSummoner의 모습
public BasicSummoner requestBasicSummoner() {
RestTemplate template = new RestTemplate();
String mes = "https://na.api.pvp.net/api/lol/na/v1.4/summoner/by-name/RiotSchmick?api_key=<my-api-key>";
BasicSummoner summoner = template.getForObject(mes, BasicSummoner.class);
log.info(summoner.toString());
return summoner;
}
그리고 :
{
"riotschmick": {
"id": 585897,
"name": "RiotSchmick",
"profileIconId": 782,
"summonerLevel": 30,
"revisionDate": 1469155559000
}
}
내 요청은 다음과 같습니다 이 :
,623,210@JsonIgnoreProperties (ignoreUnknown = TRUE) 공용 클래스 BasicSummoner {
private long id;
private String name;
private int profileIconId;
private long revisionDate;
private long summonerLevel;
public BasicSummoner() {
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getProfileIconId() {
return profileIconId;
}
public void setProfileIconId(int profileIconId) {
this.profileIconId = profileIconId;
}
public long getRevisionDate() {
return revisionDate;
}
public void setRevisionDate(long revisionDate) {
this.revisionDate = revisionDate;
}
public long getSummonerLevel() {
return summonerLevel;
}
public void setSummonerLevel(long summonerLevel) {
this.summonerLevel = summonerLevel;
}
@Override
public String toString() {
return "id=" + id + ", name=" + name + " , summoner level=" + summonerLevel;
}
}