Онлайн-интерфейс документ статистики Лиги героев lol Лиги: интерфейс Лиги героев, необходимо зарегистрироваться
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.annotation.JSONField; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; /** *@ API: Statistics of hero League * @Website: https://www.feijing88.com */ public class LolHero { public static void main(String[] args) { try { String content = getContent(); Respond rsp = JSON.parseObject(content, Respond.class); System.out.println(rsp.code); System.out.println(rsp.message); rsp.getData().forEach(System.out::println); } catch (Throwable t) { t.printStackTrace(); } } /** *Get API return content **Note: in order to facilitate the test, I used a local file, which should be replaced with the real interface to return the content */ private static String getContent() { try { StringBuilder builder = new StringBuilder(); List
lines = Files.readAllLines(Paths.get("./src/main/resources/LolHero.json"), StandardCharsets.UTF_8); lines.forEach(builder::append); return builder.toString(); } catch (Throwable t) { t.printStackTrace(); return ""; } } public static class Respond { @JSONField private int code; @JSONField private String message; @JSONField private List data; public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public List getData() { return data; } public void setData(List data) { this.data = data; } } public static class Hero { @JSONField private int heroId; @JSONField private int leagueId; @JSONField private double kda; @JSONField private double killAverage; @JSONField private double deathAverage; @JSONField private double assistAverage; @JSONField private String position; @JSONField private double pickRate; @JSONField private double banRate; @JSONField private double winRate; @Override public String toString() { return "Hero{" + "heroId=" + heroId + ", leagueId=" + leagueId + ", kda=" + kda + ", killAverage=" + killAverage + ", deathAverage=" + deathAverage + ", assistAverage=" + assistAverage + ", position='" + position + '\'' + ", pickRate=" + pickRate + ", banRate=" + banRate + ", winRate=" + winRate + '}'; } public void setHeroId(int heroId) { this.heroId = heroId; } public void setLeagueId(int leagueId) { this.leagueId = leagueId; } public void setKda(double kda) { this.kda = kda; } public void setKillAverage(double killAverage) { this.killAverage = killAverage; } public void setDeathAverage(double deathAverage) { this.deathAverage = deathAverage; } public void setAssistAverage(double assistAverage) { this.assistAverage = assistAverage; } public void setPosition(String position) { this.position = position; } public void setPickRate(double pickRate) { this.pickRate = pickRate; } public void setBanRate(double banRate) { this.banRate = banRate; } public void setWinRate(double winRate) { this.winRate = winRate; } } }
Данные, возвращаемые API, являются следующими (частичными):
200 Success Hero {herid = 1, League id = 51, kDa = 4.0, killaverage = 0.2, deathaverage = 0.1, assistaverage = 0.3, position = medium single ', pickrate = 5.882, banrate = 0.0, winrate = 71.429} Hero {herid = 1, League id = 51, kDa = 4.0, killaverage = 0.2, deathaverage = 0.1, assistaverage = 0.3, position = medium single ', pickrate = 5.882, banrate = 0.0, winrate = 71.429} Hero {herid = 2, leagueid = 51, kDa = 3.6, killaverage = 0.0, deathaverage = 0.1, assistaverage = 0.2, position = medium single ', pickrate = 1.681, banrate = 0.0, winrate = 50.0} Hero {heroid = 3, leagueid = 51, kDa = 2.4, killaverage = 0.1, deathaverage = 0.1, assistaverage = 0.2, position = single on top ', pickrate = 5.882, banrate = 0.0, winrate = 57.143} Hero {heroid = 3, leagueid = 51, kDa = 2.4, killaverage = 0.1, deathaverage = 0.1, assistaverage = 0.2, position = single on top ', pickrate = 5.882, banrate = 0.0, winrate = 57.143} Hero {heroid = 4, League id = 51, kDa = 3.0, killaverage = 0.2, deathaverage = 1.0, assistaverage = 2.9, position = 'auxiliary', pickrate = 42.017, banrate = 52.941, winrate = 56.0} Hero {heroid = 6, League id = 51, kDa = 15.0, killaverage = 0.0, deathaverage = 0.0, assistaverage = 0.1, position = medium single ', pickrate = 0.84, banrate = 3.361, winrate = 100.0} Hero{heroId=8, leagueId=51, kda=2.4, killAverage=0.0, deathAverage=0.0, assistAverage=0.1, position='ADC', pickRate=1.681, banRate=0.84, winRate=0.0} Hero {heroid = 10, League id = 51, kDa = 6.8, killaverage = 0.2, deathaverage = 0.1, assistaverage = 0.3, position = medium single ', pickrate = 6.723, banrate = 2.521, winrate = 62.5} Hero {heroid = 11, League id = 51, kDa = 1.5, killaverage = 0.0, deathaverage = 0.0, assistaverage = 0.0, position = 'auxiliary', pickrate = 0.84, banrate = 0.0, winrate = 0.0} Hero{heroId=13, leagueId=51, kda=2.4, killAverage=0.0, deathAverage=0.0, assistAverage=0.1, position='ADC', pickRate=0.84, banRate=0.0, winRate=0.0} Hero {herid = 14, League id = 51, kDa = 3.4, killaverage = 0.1, deathaverage = 0.6, assistaverage = 2.0, position = 'auxiliary', pickrate = 28.571, banrate = 9.244, winrate = 50.0} Hero{heroId=15, leagueId=51, kda=10.0, killAverage=0.0, deathAverage=0.0, assistAverage=0.1, position='ADC', pickRate=0.84, banRate=0.0, winRate=0.0}