https://www.xxe.io/
package com.huaying.demo.football;
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;

/**

*/
public class FootballOdds100 {

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

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

        MatchList matchList = (MatchList) unmarshaller.unmarshal(new ByteArrayInputStream(content.getBytes()));
        matchList.getMatchList().forEach(item -> System.out.println(item));

    } catch (Throwable t) {
        t.printStackTrace();
    }
}

/**
 * 获取API返回内容
 *
 * Note: 这里为了方便测试我使用了一份本地文件,使用时应替换为真实接口返回内容
 */
private static String getContent() {
    try {
        StringBuilder builder = new StringBuilder();
        List<String> lines = Files.readAllLines(Paths.get("./src/main/resources/FootballBet100.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 MatchList {
    private List<Match> matchList;

    @XmlElement(name = "h")
    public List<Match> getMatchList() {
        return matchList;
    }

    public void setMatchList(List<Match> matchList) {
        this.matchList = matchList;
    }
}

public static class Match{
    @XmlElement(name = "id")
    private String matchId;
    @XmlElement(name = "time")
    private String matchTime;
    @XmlElement(name = "league")
    private String leagueName;
    @XmlElement(name = "home")
    private String homeTeamName;
    @XmlElement(name = "away")
    private String awayTeamName;
    @XmlElement(name = "odds")
    private List<Odds> oddsList;

    @Override
    public String toString() {
        return "Match{" +
                "matchId='" + matchId + '\'' +
                ", matchTime='" + matchTime + '\'' +
                ", leagueName='" + leagueName + '\'' +
                ", homeTeamName='" + homeTeamName + '\'' +
                ", awayTeamName='" + awayTeamName + '\'' +
                ", oddsList=" + oddsList +
                '}';
    }

    public String getMatchId() {
        return matchId;
    }

    public String getMatchTime() {
        return matchTime;
    }

    public String getLeagueName() {
        return leagueName;
    }

    public String getHomeTeamName() {
        return homeTeamName;
    }

    public String getAwayTeamName() {
        return awayTeamName;
    }

    public List<Odds> getOddsList() {
        return oddsList;
    }
}

private static class Odds{
    @XmlElement(name = "o")
    private String item;

    @Override
    public String toString() {
        return "Odds{" +
                "item='" + item + '\'' +
                '}';
    }

    public String getItem() {
        return item;
    }
}

}


待你幼稚完
9 声望2 粉丝