share www.feijing88.com Example code for calling the [text live] interface of
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: 19.Text live broadcast * @Website: https://www.feijing88.com */ public class FootballTextLive { public static void main(String[] args) { try { String content = getContent(); JAXBContext jaxbContext = JAXBContext.newInstance(TextLiveList.class); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); TextLiveList list = (TextLiveList) unmarshaller.unmarshal(new ByteArrayInputStream(content.getBytes())); list.getTextLiveList().forEach(item -> System.out.println(item)); } catch (Throwable t) { t.printStackTrace(); } } /** * Get API return content * * Note: In order to facilitate the test, I use a local file, which should be replaced with the real interface to return the content. */ private static String getContent() { try { StringBuilder builder = new StringBuilder(); List<String> lines = Files.readAllLines(Paths.get("./src/main/resources/FootballTextLive.xml"), StandardCharsets.UTF_8); lines.forEach(line -> builder.append(line)); return builder.toString(); } catch (Throwable t) { t.printStackTrace(); return ""; } } @XmlRootElement(name = "list") public static class TextLiveList{ @XmlElement(name = "match") private List<TextLive> textLiveList; public List<TextLive> getTextLiveList() { return textLiveList; } } @XmlRootElement public static class TextLive { @XmlElement private String ID; @XmlElement private String content; @XmlElement private String time; @Override public String toString() { return "TextLive{" + "ID='" + ID + '\'' + ", content='" + content + '\'' + ", time='" + time + '\'' + '}'; } public String getID() { return ID; } public String getContent() { return content; } public String getTime() { return time; } } }
The returned data is as follows:
TextLive{ID='6996188', content='01' the first half begins. [Manchester City 3:1 Brighton], time='2018/5/10 4:50:50'} TextLive{ID='6996189', content='02' sane successfully sent a cross pass. [Manchester City 3:1 Brighton], time='2018/5/10 4:50:50'} TextLive{ID='6996190', content='02' Bernardo Silva's cross pass was cleared by the opponent and the game continued. [Manchester City 3:1 Brighton], time='2018/5/10 4:50:50'} TextLive{ID='6996191', content='02' gross was fouled, the other side got the ball, and the game continued. [Manchester City 3:1 Brighton], time='2018/5/10 4:50:50'} TextLive{ID='6996192', content='03' zinchenko sent a free kick and a pass. [Manchester City 3:1 Brighton], time='2018/5/10 4:50:50'}