籃球數據API接口 - 【籃球球員庫】API調用示例代碼

分享使用 飛鯨體育數據 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=''}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章