`

Xstream实例

    博客分类:
  • java
 
阅读更多
package com.hym.xStream;

import java.util.List;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamImplicit;

@XStreamAlias("c")
public class BKEuropOddsDTO {
    @XStreamImplicit(itemFieldName = "h")
    private List<Match> matchs;

    public List<Match> getMatchs() {
        return matchs;
    }

    public void setMatchs(List<Match> matchs) {
        this.matchs = matchs;
    }

    @XStreamAlias("h")
    public static class Match {
        @XStreamAlias("id")
        private String id;

        @XStreamAlias("odds")
        private Odds odds;

        @XStreamAlias("time")
        private String time;

        @XStreamAlias("league")
        private String league;

        @XStreamAlias("home")
        private String home;

        @XStreamAlias("away")
        private String away;

        @XStreamAlias("odds")
        public static class Odds {
            @XStreamImplicit(itemFieldName = "o")
            private List<String> o;

            public List<String> getO() {
                return o;
            }

            public void setO(List<String> o) {
                this.o = o;
            }
        }

        public String getTime() {
            return time;
        }

        public void setTime(String time) {
            this.time = time;
        }

        public String getLeague() {
            return league;
        }

        public void setLeague(String league) {
            this.league = league;
        }

        public String getHome() {
            return home;
        }

        public void setHome(String home) {
            this.home = home;
        }

        public String getAway() {
            return away;
        }

        public void setAway(String away) {
            this.away = away;
        }

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public Odds getOdds() {
            return odds;
        }

        public void setOdds(Odds odds) {
            this.odds = odds;
        }

    }
}

 

package com.hym.xStream;

import java.util.List;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.XppDomDriver;

public class XStreamTest {
	private static final String xml = "<?xml version=\"1.0\" encoding=\"UTF8\"?><c><h><id>155991</id><time>2013/4/27 8:00:00</time><league>NBA,美國男子職業籃球聯賽,美国男子职业篮球联赛</league><home>Boston Celtics,波士頓塞爾特人,波士顿凯尔特人</home><away>New York Knicks,紐約人,纽约尼克斯</away><odds><o>379,JustBet,1.69,2.25,1.68,2.28,2013/4/26 14:07:38</o><o>431,Sporttery Official,1.65,1.84,1.68,1.81,2013/4/26 14:07:37</o></odds></h><h><id>155976</id><time>2013/4/27 10:30:00</time><league>NBA,美國男子職業籃球聯賽,美国男子职业篮球联赛</league><home>Los Angeles Lakers,洛杉磯湖人,洛杉矶湖人</home><away>San Antonio Spurs,聖安東尼奧馬刺,圣安东尼奥马刺</away><odds><o>278,Sportbet,2.85,1.5,2.88,1.49,2013/4/26 14:07:49</o><o>11,5Dimes,2.85,1.5,2.88,1.49,2013/4/26 14:07:49</o><o>334,Island Casino,2.85,1.5,2.88,1.49,2013/4/26 14:07:49</o></odds></h><h><id>155972</id><time>2013/4/27 10:30:00</time><league>NBA,美國男子職業籃球聯賽,美国男子职业篮球联赛</league><home>Golden State Warriors,金州勇士,金州勇士</home><away>Denver Nuggets,丹佛金塊,丹佛掘金</away><odds><o>334,Island Casino,1.89,2.02,1.93,1.98,2013/4/26 14:05:55</o><o>278,Sportbet,1.89,2.02,1.93,1.98,2013/4/26 14:05:55</o><o>11,5Dimes,1.89,2.02,1.93,1.98,2013/4/26 14:05:54</o></odds></h></c>";

	public static void main(String[] args) {
		XStreamTest test = new XStreamTest();
		test.parseXML(xml);
	}

	public void parseXML(String content) {
		if (content == null || content.length() == 0) {
			return;
		}

		XStream xs = new XStream(new XppDomDriver());
		// xs.autodetectAnnotations(true);
		//xs.alias("h", List.class);
		xs.processAnnotations(BKEuropOddsDTO.class);

		BKEuropOddsDTO bkEuropOddsDTO = (BKEuropOddsDTO) xs.fromXML(content);

		List<BKEuropOddsDTO.Match> list = bkEuropOddsDTO.getMatchs();
		// List<String> list = (List<String>) xs.fromXML(content);

		if (list == null || list.size() <= 0) {
			return;
		}

		for (int i = 0; i < list.size(); i++) {
			BKEuropOddsDTO.Match h = list.get(i);
			System.out.println("h.MatchId = " + h.getId());
			BKEuropOddsDTO.Match.Odds odd = h.getOdds();
			List<String> odds = odd.getO();
			for (String o : odds) {
				System.out.println("o = " + o);
			}
		}
	}
}

 
没有别的窍门,根据xml的层次来定义实体类,就不会出错。

分享到:
评论

相关推荐

    xstream实例.rar

    利用xstream技术生成和解析XML文件的例子。同时里面包含xstream1.3.1.chm帮助文档,jar包(xstream-1.3.1.jar、jettison-1.0.1.jar、xpp3_min-1.1.4c.jar、junit.4.8.1.jar),还有sstream1.3.1源码。

    XStream 实例

    **XStream 深度解析与实践指南** XStream 是一个用 Java 编写的库,它将 Java 对象转换为 XML,反之亦然,提供...通过深入研究 XStream 的文档和代码实例,开发者能够更好地利用这一工具来优化项目中的数据处理流程。

    XStream解析XML实例

    首先,我们需要创建一个XStream实例,然后使用它来序列化或反序列化对象。 ```java import com.thoughtworks.xstream.XStream; public class XStreamExample { public static void main(String[] args) { // ...

    XStream简单应用实例

    2. **基本序列化**: 创建一个Java对象,然后使用XStream实例将其转换为XML字符串: ```java import com.thoughtworks.xstream.XStream; public class User { private String name; private int age; // ...

    XStream简单应用实例(xml)

    它的基本用法包括创建一个XStream实例,然后使用`toXML()`方法将对象转换为XML字符串,以及使用`fromXML()`方法将XML字符串转换回相应的Java对象。这个过程使得数据持久化、网络传输或者跨系统交互变得更加便捷。 ...

    XStream转换

    要将Java bean转换为XML,你需要创建一个XStream实例并使用它来转换对象。以下是一个简单的示例: ```java import com.thoughtworks.xstream.XStream; public class User { private String name; private int ...

    Java用xStream拼接xml

    创建xStream实例并进行基本配置,如设置日期格式、忽略字段等: ```java XStream xstream = new XStream(); xstream.alias("employee", Employee.class); // 给Employee类设置别名 ``` 3. **序列化Java对象为...

    xstream学习文档及实例

    例如,如果有一个 `Date` 类型的属性,我们可以创建一个 `DateConverter` 并注册到 XStream 实例中: ```java xstream.registerConverter(new DateConverter()); ``` 五、域级别的忽略与转换 XStream 提供了注解...

    XStream解析各种数据格式

    1. **创建XStream实例** 创建 XStream 实例是使用 XStream 的第一步。可以通过指定不同的驱动器来初始化 XStream 对象,例如使用 DOM 驱动器: ```java XStream xstream = new XStream(new DomDriver()); ``` ...

    XStream4JavaDemo演示源码

    1. **初始化XStream实例**:`XStream xstream = new XStream();` 这一步创建了一个默认配置的XStream实例。XStream会自动处理大部分常见的Java类,包括标准库中的类和一些常用框架的类。 2. **自定义转换规则**:...

    xStream完整Jar包

    2. 创建 XStream 实例:`XStream xstream = new XStream();` 3. 配置 XStream:根据需求设置命名策略、类型转换器等。 4. 序列化对象:`String xml = xstream.toXML(yourObject);` 5. 反序列化 XML:`YourObject ...

    利用XStream读写xml文件

    - 创建XStream实例。 - 使用`toXML()`方法将实体对象转换为XML字符串。 - 将XML字符串写入文件。 4. **XML文件读取**: - 创建XStream实例。 - 使用`fromXML()`方法将XML字符串转换为实体对象。 - 对实体对象...

    XStream的Date转换 @XStreamConverter DateConverter

    它们可能会创建一些包含Date对象的Java类,然后使用XStream实例进行序列化和反序列化操作,确保日期的转换符合预期。测试代码可能如下所示: ```java import com.thoughtworks.xstream.XStream; import ...

    xstream 1.3.1.jar bean对象转换为xml

    2. **创建XStream实例**:创建一个XStream实例,通常你会初始化它并设置一些配置,比如类名别名。 ```java XStream xstream = new XStream(); xstream.alias("myBean", MyBean.class); ``` 3. **转换Bean对象**...

    使用XStream操作xml教程

    首先创建一个Java对象,然后使用XStream实例的`toXML()`方法将其转换为XML字符串。 ```java import com.thoughtworks.xstream.XStream; public class User { private String name; private int age; // 构造器...

    xstream教程资料.rar

    接口并注册到XStream实例中,可以控制对象到XML的转换过程。 五、安全与配置 由于XStream可以直接将任何Java对象序列化,可能存在安全风险。为了防止恶意对象注入,可以设置安全模式,如禁用自动类型探测和使用白...

    XStream 1.4.11 jar包

    // 创建一个 XStream 实例 XStream xstream = new XStream(); // 定义要序列化的 Java 对象 Person person = new Person("John", "Doe", 30); // 将 Java 对象转换为 XML 字符串 String xml = xstream.toXML...

    xstream-1.4-API

    XStream 实例通常通过 `XStream()` 构造函数创建。为了提高安全性,你可以使用 `XStream alienInstance()` 创建不受信任输入的实例,以防止安全漏洞。还可以通过 `alias()` 方法设置别名,简化 XML 结构。 ```java ...

Global site tag (gtag.js) - Google Analytics