EAM资产管理S使用文档_第1页
EAM资产管理S使用文档_第2页
EAM资产管理S使用文档_第3页
EAM资产管理S使用文档_第4页
EAM资产管理S使用文档_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

XStream使用文档作者:胡少锋Email:hsf@212011年11月1基本介绍1.1前言XStreamJavaJava对感谢阅读象序列化为XMLXStream还能将java对象转成其它格式,谢谢阅读比如JSon。官方上的XStream特点:使用简单不需要配置映射速度快,占用内存小生成的XML文件简洁不需要修改序列化对象的类型支持类嵌套详细的错误日志可转成其它格式XStream相比其它框架有如下的优点:XStream不关心序列化/逆序列化的类的字段的可见性。感谢阅读序列化/逆序列化类的字段不需要getter和setter方法。感谢阅读序列化/逆序列化的类不需要有默认构造函数。2安装和使用2.1下载XStream的网站/download.html上面可以下谢谢阅读载到各种版本。目前用最新版本是1.4.1,下载这个版本即可。精品文档放心下载2.2安装XStreamxstream-1.4.1.jar以及kxml2-2.3.0.jar谢谢阅读放置到类路径下面即可使用。如下图所示:3开始一个例子3.1新建一个空的javaproject工程通过eclipse向导新建一个JavaProject精品文档放心下载类路径下。工程如下:3.2编写Java后台类,代码如下新建一个cn的package,然后在cn下面新建两个Java类,Person和精品文档放心下载PhoneNumber,代码分别如下:Person.javapackagecn;publicclassPerson{privateStringfirstname;privateStringlastname;privatePhoneNumberphone;privatePhoneNumberfax;publicPerson(StringfirstName,StringlastName){谢谢阅读this.firstname=firstName;this.lastname=lastName;}publicStringgetFirstname(){感谢阅读returnfirstname;}publicvoidsetFirstname(Stringfirstname){谢谢阅读this.firstname=firstname;}publicStringgetLastname(){谢谢阅读returnlastname;}publicvoidsetLastname(Stringlastname){感谢阅读this.lastname=lastname;}publicPhoneNumbergetPhone(){感谢阅读returnphone;}publicvoidsetPhone(PhoneNumberphone){感谢阅读this.phone=phone;}publicPhoneNumbergetFax(){感谢阅读returnfax;}publicvoidsetFax(PhoneNumberfax){精品文档放心下载this.fax=fax;}}PhoneNumber.javapackagecn;publicclassPhoneNumber{privateintcode;privateStringnumber;publicPhoneNumber(intcode,Stringnumber){精品文档放心下载this.code=code;this.number=number;}publicintgetCode(){returncode;}publicvoidsetCode(intcode){谢谢阅读this.code=code;}publicStringgetNumber(){returnnumber;}publicvoidsetNumber(Stringnumber){精品文档放心下载this.number=number;}}以上是两个很普通的Java对象。下面将写测试代码,将一个Person对象转成精品文档放心下载xml;然后再从xml转成Java对象。在cn包下面建立一个Main.java,代码如下:精品文档放心下载packagecn;importcom.thoughtworks.xstream.XStream;谢谢阅读publicclassMain{/***@paramargs*/publicstaticvoidmain(String[]args){谢谢阅读XStreamxstream=newXStream();感谢阅读xstream.alias("person",Person.class);感谢阅读xstream.alias("phonenumber",PhoneNumber.class);精品文档放心下载Personjoe=newPerson("Joe","Walnes");精品文档放心下载joe.setPhone(newPhoneNumber(123,"1234-456"));精品文档放心下载joe.setFax(newPhoneNumber(123,"9999-999"));精品文档放心下载Stringxml=xstream.toXML(joe);谢谢阅读System.out.println(xml);PersonnewJoe=(Person)xstream.fromXML(xml);精品文档放心下载System.out.println(newJoe.getFirstname());精品文档放心下载}}3.3运行测试类运行上面的Main.java类,输出结果如下:3.4代码解析下面主要对Main.java中的main方法进行详细地解析.谢谢阅读XStreamxstream=newXStream();感谢阅读直接实例化一个XStream对象,不用任何参数。这个时候XSteam内部会使精品文档放心下载用KXml2的解析工具。也就是上面添加的kxml2-2.3.0.jar包。感谢阅读如果不需要使用这个包的话,可以用JAXP的包等。例如:精品文档放心下载XStreamxstream=newXStream(newDomDriver());精品文档放心下载XStreamxstream=newXStream(newStaxDriver());感谢阅读继续下面的代码:xstream.alias("person",Person.class);谢谢阅读xstream.alias("phonenumber",PhoneNumber.class);精品文档放心下载这两句表示对于xmlJavaperson结点谢谢阅读映射到了Person类;而phonenumber则映射到了PhoneNumber类。谢谢阅读下面是实例化对象之类的,比较简单,我们跳过去不将。直接进入:精品文档放心下载Stringxml=xstream.toXML(joe);感谢阅读这个就是核心所在,即将一个java对象转成了xml。精品文档放心下载继续下面的代码:PersonnewJoe=(Person)xstream.fromXML(xml);谢谢阅读这个也是核心所在,将一个xml转成java对象。感谢阅读4Alias机制XStream的AliasXStream开发中不可或缺的一个重精品文档放心下载点功能,下面将通过一些实例来讲解如何应用Alias机制精品文档放心下载4.1默认情况,不使用Alias4.1.1新建相关的java对象类分别新建下面的类packagecom.thoughtworks.xstream;谢谢阅读importjava.util.ArrayList;感谢阅读importjava.util.List;publicclassBlog{privateAuthorwriter;privateListentries=newArrayList();感谢阅读publicBlog(Authorwriter){this.writer=writer;}publicvoidadd(Entryentry){精品文档放心下载entries.add(entry);}publicListgetContent(){returnentries;}}packagecom.thoughtworks.xstream;精品文档放心下载publicclassAuthor{privateStringname;publicAuthor(Stringname){=name;}publicStringgetName(){returnname;}}packagecom.thoughtworks.xstream;感谢阅读publicclassEntry{privateStringtitle;privateStringdescription;publicEntry(Stringtitle,Stringdescription){谢谢阅读this.title=title;this.description=description;感谢阅读}}4.1.2建立测试代码如下:packagecom.thoughtworks.xstream;精品文档放心下载publicclassMain{publicstaticvoidmain(String[]args){精品文档放心下载BlogteamBlog=newBlog(newAuthor("GuilhermeSilveira"));精品文档放心下载teamBlog.add(newEntry("first","Myfirstblogentry."));感谢阅读teamBlog.add(newEntry("tutorial",谢谢阅读"Todaywehavedevelopedanicealiastutorial.Tellyourfriends!NOW!"));谢谢阅读XStreamxstream=newXStream();谢谢阅读System.out.println(xstream.toXML(teamBlog));谢谢阅读}}运行这个主函数,输出结果如下:<com.thoughtworks.xstream.Blog>谢谢阅读<writer><name>GuilhermeSilveira</name>谢谢阅读</writer><entries><com.thoughtworks.xstream.Entry>精品文档放心下载<title>first</title><description>Myfirstblogentry.</description>谢谢阅读</com.thoughtworks.xstream.Entry>感谢阅读<com.thoughtworks.xstream.Entry>谢谢阅读<title>tutorial</title><description>Todaywehavedevelopedanicealiastutorial.Tellyourfriends!NOW!</description>精品文档放心下载</com.thoughtworks.xstream.Entry>感谢阅读</entries></com.thoughtworks.xstream.Blog>谢谢阅读4.1.3分析AliasXML中包含了类的精品文档放心下载package和class感谢阅读能我们想要的结果是如下:<blog><writer><name>GuilhermeSilveira</name>精品文档放心下载</writer><entries><entry><title>first</title><description>Myfirstblogentry.</description>谢谢阅读</entry><entry><title>tutorial</title><description>Todaywehavedevelopedanicealiastutorial.Tellyourfriends!NOW!</description>精品文档放心下载</entry></entries></blog>4.2对class进行alias修改上面的主函数,增加alias,如下:publicstaticvoidmain(String[]args){感谢阅读BlogteamBlog=newBlog(newAuthor("GuilhermeSilveira"));精品文档放心下载teamBlog.add(newEntry("first","Myfirstblogentry."));谢谢阅读teamBlog.add(newEntry("tutorial",感谢阅读"Todaywehavedevelopedanicealiastutorial.Tellyourfriends!NOW!"));谢谢阅读XStreamxstream=newXStream();谢谢阅读xstream.alias("blog",Blog.class);精品文档放心下载xstream.alias("author",Author.class);精品文档放心下载xstream.alias("entry",Entry.class);感谢阅读System.out.println(xstream.toXML(teamBlog));谢谢阅读}运行,输出结果如下:<blog><writer><name>GuilhermeSilveira</name>谢谢阅读</writer><entries><entry><title>first</title><description>Myfirstblogentry.</description>感谢阅读</entry><entry><title>tutorial</title><description>Todaywehavedevelopedanicealiastutorial.Tellyourfriends!NOW!</description>感谢阅读</entry></entries></blog>4.3对field进行alias从4.2Class进行aliasXstream除了可以对Class感谢阅读进行alias外,还可以对field进行alias。谢谢阅读修改上述的main函数,如下:publicstaticvoidmain(String[]args){感谢阅读BlogteamBlog=newBlog(newAuthor("GuilhermeSilveira"));感谢阅读teamBlog.add(newEntry("first","Myfirstblogentry."));谢谢阅读teamBlog.add(newEntry("tutorial",感谢阅读"Todaywehavedevelopedanicealiastutorial.Tellyourfriends!NOW!"));谢谢阅读XStreamxstream=newXStream();谢谢阅读xstream.alias("blog",Blog.class);精品文档放心下载xstream.alias("author",Author.class);感谢阅读xstream.alias("entry",Entry.class);精品文档放心下载xstream.aliasField("author",Blog.class,"writer");谢谢阅读System.out.println(xstream.toXML(teamBlog));精品文档放心下载}运行上面结果,输出如下:<blog><author><name>GuilhermeSilveira</name>精品文档放心下载</author><entries><entry><title>first</title><description>Myfirstblogentry.</description>感谢阅读</entry><entry><title>tutorial</title><description>Todaywehavedevelopedanicealiastutorial.Tellyourfriends!NOW!</description>谢谢阅读</entry></entries></blog>4.4隐含的Collections像上述中的xml,可以看到这个结点:<entries><entry><title>first</title><description>Myfirstblogentry.</description>感谢阅读</entry>……</entries>假如我们不需要其中这个结点,也就是想把<entries>结点去除,那么就可感谢阅读以使用其implicitcollection功能。精品文档放心下载修改main函数,如下:publicstaticvoidmain(String[]args){精品文档放心下载BlogteamBlog=newBlog(newAuthor("GuilhermeSilveira"));精品文档放心下载teamBlog.add(newEntry("first","Myfirstblogentry."));精品文档放心下载teamBlog.add(newEntry("tutorial",精品文档放心下载"Todaywehavedevelopedanicealiastutorial.Tellyourfriends!NOW!"));精品文档放心下载XStreamxstream=newXStream();谢谢阅读xstream.alias("blog",Blog.class);谢谢阅读xstream.alias("author",Author.class);谢谢阅读xstream.alias("entry",Entry.class);感谢阅读xstream.aliasField("author",Blog.class,"writer");感谢阅读xstream.addImplicitCollection(Blog.class,"entries");感谢阅读System.out.println(xstream.toXML(teamBlog));谢谢阅读}运行上面函数,输出结果如下:<blog><author><name>GuilhermeSilveira</name>感谢阅读</author><entry><title>first</title><description>Myfirstblogentry.</description>谢谢阅读</entry><entry><title>tutorial</title><description>Todaywehavedevelopedanicealiastutorial.Tellyourfriends!NOW!</description>感谢阅读</entry></blog>4.5对package进行aliasXStream另外一个功能是对package进行alias,虽然这个功能比较少用。感谢阅读修改main函数,如下:publicstaticvoidmain(String[]args){感谢阅读BlogteamBlog=newBlog(newAuthor("GuilhermeSilveira"));精品文档放心下载teamBlog.add(newEntry("first","Myfirstblogentry."));谢谢阅读teamBlog.add(newEntry("tutorial",谢谢阅读"Todaywehavedevelopedanicealiastutorial.Tellyourfriends!NOW!"));精品文档放心下载XStreamxstream=newXStream();精品文档放心下载xstream.aliasPackage("pany","com.thoughtworks");感谢阅读System.out.println(xstream.toXML(teamBlog));精品文档放心下载}运行以上结果,输出如下:<pany.xstream.Blog><writer><name>GuilhermeSilveira</name>精品文档放心下载</writer><entries><pany.xstream.Entry>谢谢阅读<title>first</title><description>Myfirstblogentry.</description>感谢阅读</pany.xstream.Entry>谢谢阅读<pany.xstream.Entry>谢谢阅读<title>tutorial</title><description>Todaywehavedevelopedanicealiastutorial.Tellyourfriends!NOW!</description>精品文档放心下载</pany.xstream.Entry>精品文档放心下载</entries></pany.xstream.Blog>精品文档放心下载5Converter机制XStream提供了Converterobject<->xml谢谢阅读参数进行类型转换。5.1简单介绍从上面的xml中看到,blog中有author子结点,看起来比较啰嗦,可能我感谢阅读们想把author子节点作为blog的属性,如下:感谢阅读<blogauthor="GuilhermeSilveira">精品文档放心下载那么就需要用到属性转换功能。增加AuthorConverter.java,代码如下:精品文档放心下载packagecom.thoughtworks.xstream;精品文档放心下载importcom.thoughtworks.xstream.converters.SingleValueConverter;感谢阅读classAuthorConverterimplementsSingleValueConverter{谢谢阅读publicStringtoString(Objectobj){精品文档放心下载return((Author)obj).getName();谢谢阅读}publicObjectfromString(Stringname){谢谢阅读returnnewAuthor(name);}publicbooleancanConvert(Classtype){谢谢阅读returntype.equals(Author.class);精品文档放心下载}}然后修改主函数,如下:packagecom.thoughtworks.xstream;感谢阅读publicclassMain{publicstaticvoidmain(String[]args){精品文档放心下载BlogteamBlog=newBlog(newAuthor("GuilhermeSilveira"));谢谢阅读teamBlog.add(newEntry("first","Myfirstblogentry."));精品文档放心下载teamBlog.add(newEntry("tutorial",感谢阅读"Todaywehavedevelopedanicealiastutorial.Tellyourfriends!NOW!"));精品文档放心下载XStreamxstream=newXStream();感谢阅读xstream.alias("blog",Blog.class);感谢阅读xstream.alias("author",Author.class);精品文档放心下载xstream.alias("entry",Entry.class);谢谢阅读xstream.aliasField("author",Blog.class,"writer");精品文档放心下载xstream.addImplicitCollection(Blog.class,"entries");感谢阅读xstream.useAttributeFor(Blog.class,"writer");感谢阅读xstream.aliasField("author",Blog.class,"writer");感谢阅读xstream.registerConverter(newAuthorConverter());谢谢阅读System.out.println(xstream.toXML(teamBlog));感谢阅读}}运行上面,输出如下:<blogauthor="GuilhermeSilveira">感谢阅读<entry><title>first</title><description>Myfirstblogentry.</description>精品文档放心下载</entry><entry><title>tutorial</title><description>Todaywehavedevelopedanicealiastutorial.Tellyourfriends!NOW!</description>谢谢阅读</entry></blog>5.2对象转换器ObjectConverter下面讲解ObjectConverter实例。新建如下两个类packagecom.thoughtworks.xstream.examples;感谢阅读publicclassPerson{privateStringname;publicStringgetName(){returnname;}publicvoidsetName(Stringname){谢谢阅读=name;}}packagecom.thoughtworks.xstream.examples;谢谢阅读importcom.thoughtworks.xstream.XStream;感谢阅读publicclassPersonTest{publicstaticvoidmain(String[]args){谢谢阅读Personperson=newPerson();person.setName("Guilherme");精品文档放心下载XStreamxStream=newXStream();谢谢阅读xStream.alias("person",Person.class);精品文档放心下载System.out.println(xStream.toXML(person));感谢阅读}}运行以上主函数,输出结果如下:<person><name>Guilherme</name></person>现在假如我们需要输出如下的结果:<person><fullname>Guilherme</fullname>感谢阅读</person>那么最简单的办法就是使用aliasFiled方法,如下:精品文档放心下载packagecom.thoughtworks.xstream.examples;谢谢阅读importcom.thoughtworks.xstream.XStream;精品文档放心下载publicclassPersonTest{publicstaticvoidmain(String[]args){谢谢阅读Personperson=newPerson();person.setName("Guilherme");精品文档放心下载XStreamxStream=newXStream();精品文档放心下载xStream.alias("person",Person.class);谢谢阅读xStream.aliasField("fullname",Person.class,"name");谢谢阅读System.out.println(xStream.toXML(person));感谢阅读}}但是,下面我们将通过ObjectConverter实现上面的功能。谢谢阅读新建一个PersonConverter类,代码如下:感谢阅读packagecom.thoughtworks.xstream.examples;谢谢阅读importcom.thoughtworks.xstream.converters.Converter;精品文档放心下载importcom.thoughtworks.xstream.converters.MarshallingContext;感谢阅读importcom.thoughtworks.xstream.converters.UnmarshallingContext;精品文档放心下载importcom.thoughtworks.xstream.io.HierarchicalStreamReader;感谢阅读importcom.thoughtworks.xstream.io.HierarchicalStreamWriter;感谢阅读publicclassPersonConverterimplementsConverter{精品文档放心下载publicbooleancanConvert(Classclazz){感谢阅读returnfalse;}publicvoidmarshal(Objectvalue,HierarchicalStreamWriterwriter,感谢阅读MarshallingContextcontext){谢谢阅读}publicObjectunmarshal(HierarchicalStreamReaderreader,谢谢阅读UnmarshallingContextcontext){谢谢阅读returnnull;}}然后修改canConvert(Classclazz)方法,如下:感谢阅读publicbooleancanConvert(Classclazz){谢谢阅读returnclazz.equals(Person.class);谢谢阅读}这段代码告诉XStreamPerson.classPersonConverter,感谢阅读其它类型的Class则不允许使用这个Converter。感谢阅读修改marshal方法,代码如下:publicvoidmarshal(Objectvalue,HierarchicalStreamWriterwriter,精品文档放心下载MarshallingContextcontext){感谢阅读Personperson=(Person)value;精品文档放心下载writer.startNode("fullname");感谢阅读writer.setValue(person.getName());谢谢阅读writer.endNode();}当通过了canConvert方法的判断后,就进入marshal方法。上面这段代码谢谢阅读告诉XStream,输出xml的writer从fullname结点开始写,然后读取person感谢阅读的值,作为fullname结点的值。继续修改unmarshal方法,代码如下:publicObjectunmarshal(HierarchicalStreamReaderreader,感谢阅读UnmarshallingContextcontext){感谢阅读Personperson=newPerson();reader.moveDown();person.setName(reader.getValue());谢谢阅读reader.moveUp();returnperson;}顾名思义,unmarshal是在将xml转换成object时调用到,这段代码告诉谢谢阅读了XStream,当遇到Person.class时,reader的指针到下一个结点,然后读取谢谢阅读结点的值。然后返回到父结点。最后完成的PersonConverter.java代码如下:感谢阅读packagecom.thoughtworks.xstream.examples;精品文档放心下载importcom.thoughtworks.xstream.converters.Converter;感谢阅读importcom.thoughtworks.xstream.converters.MarshallingContext;精品文档放心下载importcom.thoughtworks.xstream.converters.UnmarshallingContext;精品文档放心下载importcom.thoughtworks.xstream.io.HierarchicalStreamReader;谢谢阅读importcom.thoughtworks.xstream.io.HierarchicalStreamWriter;精品文档放心下载publicclassPersonConverterimplementsConverter{感谢阅读publicbooleancanConvert(Classclazz){谢谢阅读returnclazz.equals(Person.class);谢谢阅读}publicvoidmarshal(Objectvalue,HierarchicalStreamWriterwriter,谢谢阅读MarshallingContextcontext){精品文档放心下载Personperson=(Person)value;谢谢阅读writer.startNode("fullname");感谢阅读writer.setValue(person.getName());精品文档放心下载writer.endNode();}publicObjectunmarshal(HierarchicalStreamReaderreader,精品文档放心下载UnmarshallingContextcontext){感谢阅读Personperson=newPerson();reader.moveDown();person.setName(reader.getValue());感谢阅读reader.moveUp();returnperson;}}最后,我们修改PersonTest的主函数,添加PersonConverter,如下:精品文档放心下载publicstaticvoidmain(String[]args){感谢阅读Personperson=newPerson();person.setName("Guilherme");感谢阅读XStreamxStream=newXStream();精品文档放心下载xStream.alias("person",Person.class);谢谢阅读xStream.registerConverter(newPersonConverter());感谢阅读System.out.println(xStream.toXML(person));谢谢阅读}运行,输出结果如下:<person><fullname>Guilherme</fullname>精品文档放心下载</person>5.3日期转换下面将实现另外一个例子,对日期格式进行转换。新建DateConverter.java,代码如下:精品文档放心下载packagecom.thoughtworks.xstream.examples;谢谢阅读importjava.text.DateFormat;感谢阅读importjava.text.ParseException;感谢阅读importjava.util.Calendar;importjava.util.Date;importjava.util.GregorianCalendar;精品文档放心下载importjava.util.Locale;importcom.thoughtworks.xstream.converters.ConversionException;感谢阅读importcom.thoughtworks.xstream.converters.Converter;谢谢阅读importcom.thoughtworks.xstream.converters.MarshallingContext;谢谢阅读importcom.thoughtworks.xstream.converters.UnmarshallingContext;谢谢阅读importcom.thoughtworks.xstream.io.HierarchicalStreamReader;精品文档放心下载importcom.thoughtworks.xstream.io.HierarchicalStreamWriter;感谢阅读publicclassDateConverterimplementsConverter{感谢阅读privateLocalelocale;publicDateConverter(Localelocale){谢谢阅读super();this.locale=locale;}publicbooleancanConvert(Classclazz){感谢阅读returnCalendar.class.isAssignableFrom(clazz);精品文档放心下载}publicvoidmarshal(Objectvalue,HierarchicalStreamWriterwriter,精品文档放心下载MarshallingContextcontext){精品文档放心下载Calendarcalendar=(Calendar)value;精品文档放心下载Datedate=calendar.getTime();精品文档放心下载DateFormatformatter=DateFormat.getDateInstance(DateFormat.FULL,谢谢阅读this.locale);writer.setValue(formatter.format(date));谢谢阅读}publicObjectunmarshal(HierarchicalStreamReaderreader,精品文档放心下载UnmarshallingContextcontext){谢谢阅读GregorianCalendarcalendar=newGregorianCalendar();感谢阅读DateFormatformatter=DateFormat.getDateInstance(DateFormat.FULL,谢谢阅读this.locale);try{calendar.setTime(formatter.parse(reader.getValue()));精品文档放心下载}catch(ParseExceptione){thrownewConversionException(e.getMessage(),e);精品文档放心下载}returncalendar;}}下面建DateTest.java测试类,如下:packagecom.thoughtworks.xstream.examples;感谢阅读importjava.util.Calendar;importjava.util.GregorianCalendar;感谢阅读importjava.util.Locale;importcom.thoughtworks.xstream.XStream;精品文档放心下载importcom.thoughtworks.xstream.io.xml.DomDriver;感谢阅读publicclassDateTest{publicstaticvoidmain(String[]args){感谢阅读Calendarcalendar=newGregorianCalendar();精品文档放心下载XStreamxStream=newXStream(newDomDriver());精品文档放心下载//brazilianportugueselocale谢谢阅读xStream.registerConverter(newDateConverter(newLocale("zh","CN")));精品文档放心下载//printstheresultSystem.out.println(xStream.toXML(calendar));谢谢阅读}}运行以上代码,输出结果如下:<gregorian-calendar>2011年10月30日星期日</gregorian-calendar>精品文档放心下载当然,其中的时间随着当前时间而变。5.4XStream自带的ConverterXStream提供了很多Converter,并根据遇到的xml,获取对应的感谢阅读Converter。5.5自定义Converter应用场景5.5.1自定义StringConverter在xml处理中,经常会碰到空格字符串,比如<person><name>zhangsan</name></person>对于上面的namezhangsan精品文档放心下载自定义StringConverter,对这种空格进行处理。谢谢阅读例子如下:classStringConverterextends感谢阅读com.thoughtworks.xstream.converters.basic.StringConverter{感谢阅读publicObjectfromString(Stringstr){精品文档放心下载Objects=super.fromString(str);谢谢阅读returns==null?s:((String)s).trim();感谢阅读}}5.5.2自定义IntConverter在xml精品文档放心下载空格转成0,那么就可以自定义IntConverter谢谢阅读classIntConverterextendscom.thoughtworks.xstream.converters.basic.IntConverter{精品文档放心下载publicObjectfromString(Stringstr){谢谢阅读if(StringUtils.isBlank(str)){谢谢阅读return0;}returnsuper.fromString(str);谢谢阅读}}6omitField默认的情况下,XStreamobject转成xml精品文档放心下载个xml转成对象。对于个别字段或者xml域,可能我们不想做转换,就可以使用omitField谢谢阅读新建下面两个测试类packageomitfield;publicclassPerson{privateStringfirstname;privateStringlastname;privateintage;publicStringgetFirstname(){精品文档放心下载returnfirstname;}publicvoidsetFirstname(Stringfirstname){精品文档放心下载this.firstname=firstname;}publicStringgetLastname(){精品文档放心下载returnlastname;}publicvoidsetLastname(Stringlastname){感谢阅读this.lastname=lastname;}publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}}packageomitfield;importcom.thoughtworks.xstream.XStream;谢谢阅读publicclassPersonTest{publicstaticvoidmain(String[]args){谢谢阅读Personperson=newPerson();person.setFirstname("timmy");精品文档放心下载person.setLastname("hu");XStreamxStream=newXStream();精品文档放心下载xStream.alias("person",Person.class);谢谢阅读xStream.omitField(Person.class,"lastname");感谢阅读Stringxml=xStream.toXML(person);感谢阅读System.out.println(xml);Personp=(Person)xStream.fromXML(xml);感谢阅读System.out.println(p.getLastname());感谢阅读}}运行以上结果,输出如下:<person><firstname>timmy</firstname>精品文档放心下载<age>0</age></person>null7Json支持XStream提供了对Json的支持,即可以将object转成json数据。谢谢阅读需要添加如下3个jar包:将上面的3个jar包添加到类路径下面。我们使用第六节中的代码,修改PersonTest.java主函数,如下:精品文档放心下载packageomitfield;importcom.thoughtworks.xstream.XStream;感谢阅读importcom.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;谢谢阅读publicclassPersonTest{publicstaticvo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论