分享使用 飛鯨體育數據 www.feijing88.com 接口調用的示例代碼,籃球數據【籃球球員庫】接口
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.io.ByteArrayInputStream;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
/**
* @API: 7.籃球球員庫
* @Website: https://www.feijing88.com
*/
public class BasketballPlayerInfo {
public static void main(String[] args) {
try {
String content = getContent();
JAXBContext jaxbContext = JAXBContext.newInstance(PlayerList.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
PlayerList list = (PlayerList) unmarshaller.unmarshal(new ByteArrayInputStream(content.getBytes()));
list.getPlayerList().forEach(System.out::println);
} catch (Throwable t) {
t.printStackTrace();
}
}
/**
* 獲取API返回內容
* <p>
* Note: 這裏爲了方便測試我使用了一份本地文件,使用時應替換爲真實接口返回內容
*/
private static String getContent() {
try {
StringBuilder builder = new StringBuilder();
List<String> lines = Files.readAllLines(Paths.get("./src/main/resources/BasketballPlayerInfo.xml"), StandardCharsets.UTF_8);
lines.forEach(builder::append);
return builder.toString();
} catch (Throwable t) {
t.printStackTrace();
return "";
}
}
@XmlRootElement(name = "list")
public static class PlayerList{
@XmlElement(name = "i")
private List<Player> playerList;
public List<Player> getPlayerList() {
return playerList;
}
}
public static class Player {
@XmlElement(name = "id")
private String id;
@XmlElement(name = "Number")
private String number;
@XmlElement(name = "Name_F")
private String nameBig;
@XmlElement(name = "Name_JS")
private String nameGbShort;
@XmlElement(name = "Name_J")
private String nameGb;
@XmlElement(name = "Name_E")
private String nameEn;
@XmlElement(name = "TeamID")
private String teamId;
@XmlElement(name = "Place")
private String place;
@XmlElement(name = "Birthday")
private String birthday;
@XmlElement(name = "Tallness")
private String tallness;
@XmlElement(name = "Weight")
private String weight;
@XmlElement(name = "Photo")
private String photo;
@XmlElement(name = "NbaAge")
private String nbaAge;
@XmlElement(name = "Salary")
private String salary;
@Override
public String toString() {
return "Player{" +
"id='" + id + '\'' +
", number='" + number + '\'' +
", nameBig='" + nameBig + '\'' +
", nameGbShort='" + nameGbShort + '\'' +
", nameGb='" + nameGb + '\'' +
", nameEn='" + nameEn + '\'' +
", teamId='" + teamId + '\'' +
", place='" + place + '\'' +
", birthday='" + birthday + '\'' +
", tallness='" + tallness + '\'' +
", weight='" + weight + '\'' +
", photo='" + photo + '\'' +
", nbaAge='" + nbaAge + '\'' +
", salary='" + salary + '\'' +
'}';
}
}
}
API 返回數據如下(部分):
Player{id='4982', number='4', nameBig='艾西亞泰萊', nameGbShort='I.泰萊', nameGb='I.泰萊', nameEn='Isaiah Taylor', teamId='5264', place='後衛', birthday='1994/7/11 0:00:00', tallness='191', weight='77', photo='/files/Player/20161018165348.jpg', nbaAge='2', salary='131'}
Player{id='4983', number='40', nameBig='祖巴域', nameGbShort='伊維察-祖巴茨', nameGb='伊維察-祖巴茨', nameEn='Ivica Zubac', teamId='29', place='中鋒', birthday='1997/3/18 0:00:00', tallness='216', weight='109', photo='/files/Player/20161018165918.jpg', nbaAge='3', salary='154'}
Player{id='4997', number='95', nameBig='賓布利', nameGbShort='本布里', nameGb='德安德魯-本布里', nameEn='DeAndre Bembry', teamId='13', place='前鋒', birthday='1994/7/4 0:00:00', tallness='198', weight='95', photo='/files/Player/20161010174225.jpg', nbaAge='3', salary='163'}
Player{id='4998', number='3', nameBig='Y.費尼爾', nameGbShort='費雷爾', nameGb='Y.費雷爾', nameEn='Yogi Ferrell', teamId='24', place='後衛', birthday='1993/5/9 0:00:00', tallness='183', weight='82', photo='/files/Player/20161206175607.jpg', nbaAge='3', salary='300'}
Player{id='5026', number='21', nameBig='C.奧奴亞古', nameGbShort='C·歐努阿庫', nameGb='齊納努·歐努阿庫', nameEn='Chinanu Onuaku', teamId='64', place='前鋒', birthday='1996/11/1 0:00:00', tallness='208', weight='111', photo='/files/Player/20161018165325.jpg', nbaAge='', salary=''}