野子电竞数据官网改版https://www.xxe.io/全新登场
package com.huaying.demo.basketball;
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;
import java.util.stream.Collectors;

/**

*/
public class BasketballChange {

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

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

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


@XmlRootElement(name = "c")
public static class ChangeList {
    @XmlElement(name = "h")
    private List<String> itemList;

    public List<Change> getChangeList() {
        return itemList.stream().map(s -> {
            Change change = new Change();
            change.parse(s);
            return change;
        }).collect(Collectors.toList());
    }
}

public static class Change {
    private String matchId;
    private int matchStatus;
    private String remainTime;
    private int homeScore;
    private int homeScoreFirst;
    private int homeScoreSecond;
    private int homeScoreThird;
    private int homeScoreFourth;
    private int homeScoreFirstOT;
    private int homeScoreSecondOT;
    private int homeScoreThirdOT;
    private int awayScore;
    private int awayScoreFirst;
    private int awayScoreSecond;
    private int awayScoreThird;
    private int awayScoreFourth;
    private int awayScoreFirstOT;
    private int awayScoreSecondOT;
    private int awayScoreThirdOT;

    public void parse(String data) {
        String[] values = data.split("\\^");
        matchId = values[0];
        matchStatus = parseInt(values[1]);
        remainTime = values[2];
        homeScore = parseInt(values[3]);
        homeScoreFirst = parseInt(values[5]);
        homeScoreSecond = parseInt(values[7]);
        homeScoreThird = parseInt(values[9]);
        homeScoreFourth = parseInt(values[11]);
        homeScoreFirstOT = parseInt(values[16]);
        homeScoreSecondOT = parseInt(values[18]);
        homeScoreThirdOT = parseInt(values[20]);
        awayScore = parseInt(values[4]);
        awayScoreFirst = parseInt(values[6]);
        awayScoreSecond = parseInt(values[8]);
        awayScoreThird = parseInt(values[10]);
        awayScoreFourth = parseInt(values[12]);
        awayScoreFirstOT = parseInt(values[17]);
        awayScoreSecondOT = parseInt(values[19]);
        awayScoreThirdOT = parseInt(values[21]);
    }

    private int parseInt(String data) {
        return data == null || data.isEmpty() ? 0 : Integer.valueOf(data);
    }

    @Override
    public String toString() {
        return "Change{" +
                "matchId='" + matchId + '\'' +
                ", matchStatus=" + matchStatus +
                ", remainTime='" + remainTime + '\'' +
                ", homeScore=" + homeScore +
                ", homeScoreFirst=" + homeScoreFirst +
                ", homeScoreSecond=" + homeScoreSecond +
                ", homeScoreThird=" + homeScoreThird +
                ", homeScoreFourth=" + homeScoreFourth +
                ", homeScoreFirstOT=" + homeScoreFirstOT +
                ", homeScoreSecondOT=" + homeScoreSecondOT +
                ", homeScoreThirdOT=" + homeScoreThirdOT +
                ", awayScore=" + awayScore +
                ", awayScoreFirst=" + awayScoreFirst +
                ", awayScoreSecond=" + awayScoreSecond +
                ", awayScoreThird=" + awayScoreThird +
                ", awayScoreFourth=" + awayScoreFourth +
                ", awayScoreFirstOT=" + awayScoreFirstOT +
                ", awayScoreSecondOT=" + awayScoreSecondOT +
                ", awayScoreThirdOT=" + awayScoreThirdOT +
                '}';
    }
}

}


待你幼稚完
9 声望2 粉丝