籃球數據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: 5.球隊資料
 * @Website: https://www.feijing88.com
 */
public class BasketballTeamInfo {

    public static void main(String[] args) {
        try {
            String content = getContent();

            JAXBContext jaxbContext = JAXBContext.newInstance(TeamList.class);
            Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();

            TeamList list = (TeamList) unmarshaller.unmarshal(new ByteArrayInputStream(content.getBytes()));
            list.getTeamList().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/BasketballTeamInfo.xml"), StandardCharsets.UTF_8);
            lines.forEach(builder::append);
            return builder.toString();
        } catch (Throwable t) {
            t.printStackTrace();
            return "";
        }
    }

    @XmlRootElement(name = "list")
    public static class TeamList {
        @XmlElement(name = "i")
        private List<Team> teamList;

        public List<Team> getTeamList() {
            return teamList;
        }
    }

    public static class Team {
        @XmlElement(name = "id")
        private String id;
        @XmlElement(name = "lsID")
        private String leagueId;
        @XmlElement(name = "short")
        private String nameShort;
        @XmlElement(name = "gb")
        private String nameGb;
        @XmlElement(name = "big5")
        private String nameBig;
        @XmlElement(name = "en")
        private String nameEn;
        @XmlElement(name = "logo")
        private String logo;
        @XmlElement(name = "LocationID")
        private String locationId;
        @XmlElement(name = "MatchAddrID")
        private String areaId;
        @XmlElement(name = "url")
        private String website;
        @XmlElement(name = "City")
        private String city;
        @XmlElement(name = "Gymnasium")
        private String gym;
        @XmlElement(name = "Capacity")
        private int capacity;
        @XmlElement(name = "JoinYear")
        private int joinYear;
        @XmlElement(name = "FirstTime")
        private int championCount;
        @XmlElement(name = "Drillmaster")
        private String drillmaster;

        @Override
        public String toString() {
            return "Team{" +
                    "id='" + id + '\'' +
                    ", nameShort='" + nameShort + '\'' +
                    ", nameGb='" + nameGb + '\'' +
                    ", nameBig='" + nameBig + '\'' +
                    ", nameEn='" + nameEn + '\'' +
                    ", logo='" + logo + '\'' +
                    ", locationId='" + locationId + '\'' +
                    ", areaId='" + areaId + '\'' +
                    ", website='" + website + '\'' +
                    ", city='" + city + '\'' +
                    ", gym='" + gym + '\'' +
                    ", capacity=" + capacity +
                    ", joinYear=" + joinYear +
                    ", championCount=" + championCount +
                    ", drillmaster='" + drillmaster + '\'' +
                    '}';
        }
    }
}

API 返回數據如下(部分):

Team{id='1', nameShort='湖人', nameGb='洛杉磯湖人', nameBig='洛杉磯湖人', nameEn='Los Angeles Lakers', logo='/files/team/20120112163535.jpg', locationId='2', areaId='4', website='http://www.nba.com/lakers/', city='加利福尼亞州 洛杉磯市', gym='斯臺普斯球館', capacity=19282, joinYear=0, championCount=16, drillmaster='盧克-沃頓'}
Team{id='2', nameShort='凱爾特人', nameGb='波士頓凱爾特人', nameBig='波士頓塞爾特人', nameEn='Boston Celtics', logo='/files/team/20120112150854.jpg', locationId='1', areaId='1', website='http://www.nba.com/celtics/', city='馬薩諸塞洲 波士頓市', gym='北岸花園球館', capacity=18624, joinYear=1946, championCount=17, drillmaster='布拉德-史蒂文斯'}
Team{id='3', nameShort='熱火', nameGb='邁阿密熱火', nameBig='邁亞密熱火', nameEn='Miami Heat', logo='/files/team/20120112154051.jpg', locationId='1', areaId='3', website='http://www.nba.com/heat/', city='佛羅里達州 邁阿密市', gym='美國航空球場', capacity=20000, joinYear=1988, championCount=1, drillmaster='斯波爾斯特拉'}
Team{id='4', nameShort='籃網', nameGb='布魯克林籃網', nameBig='布魯克林籃網', nameEn='Brooklyn Nets', logo='/files/team/20120821112729.jpg', locationId='1', areaId='1', website='http://www.nba.com/nets/', city='紐約州布魯克林', gym='巴克萊中心球場', capacity=18103, joinYear=0, championCount=1, drillmaster='肯尼-阿特金森'}
Team{id='5', nameShort='尼克斯', nameGb='紐約尼克斯', nameBig='紐約人', nameEn='New York Knicks', logo='/files/team/20120112165918.jpg', locationId='1', areaId='1', website='http://www.nba.com/knicks/', city='紐約州 紐約市', gym='麥迪遜公園球場', capacity=19763, joinYear=0, championCount=2, drillmaster='大衛·菲茲戴爾'}
Team{id='6', nameShort='魔術', nameGb='奧蘭多魔術', nameBig='奧蘭多魔術', nameEn='Orlando Magic', logo='/files/team/20120112171211.jpg', locationId='1', areaId='3', website='http://www.nba.com/magic/', city='佛羅里達州 奧蘭多市', gym='安利球館', capacity=17519, joinYear=0, championCount=0, drillmaster=''}
Team{id='7', nameShort='76人', nameGb='費城76人', nameBig='費城七十六人', nameEn='Philadelphia 76ers', logo='/files/team/20180117152851.png', locationId='1', areaId='1', website='http://www.nba.com/sixers/', city='賓夕法尼亞州 費城市', gym='富國銀行中心球館', capacity=0, joinYear=0, championCount=3, drillmaster='佈雷特-布朗'}
Team{id='8', nameShort='奇才', nameGb='華盛頓奇才', nameBig='華盛頓巫師', nameEn='Washington Wizards', logo='/files/team/20180117153230.png', locationId='1', areaId='3', website='http://www.nba.com/wizards/', city='華盛頓特區 華盛頓', gym='維爾佐中心球館', capacity=0, joinYear=0, championCount=1, drillmaster='斯科特-布魯克斯'}
Team{id='9', nameShort='活塞', nameGb='底特律活塞', nameBig='底特律活塞', nameEn='Detroit Pistons', logo='/files/team/20180117153734.png', locationId='1', areaId='2', website='http://www.nba.com/pistons/', city='密歇根州 底特律市', gym='小凱撒球館', capacity=20491, joinYear=0, championCount=3, drillmaster='范甘迪'}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章