日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

XStream转换Java对象与XML

發(fā)布時間:2024/9/20 asp.net 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 XStream转换Java对象与XML 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.引入需要的jar包,在pom.xml中配置依賴?

Java代碼??
  • <dependency>??
  • ????<groupId>com.thoughtworks.xstream</groupId>??
  • ????<artifactId>xstream</artifactId>??
  • ????<version>1.4.2</version>??
  • </dependency>??

  • 2.創(chuàng)建要轉(zhuǎn)換的實(shí)例類,本文以簡單的硬件信息為例?

    Java代碼??
  • package?com.ajita.xstream;??
  • ??
  • import?com.thoughtworks.xstream.annotations.XStreamAlias;??
  • import?com.thoughtworks.xstream.annotations.XStreamAsAttribute;??
  • ??
  • @XStreamAlias("DiskInfo")??
  • public?class?DiskInfo?{??
  • ????@XStreamAsAttribute??
  • ????@XStreamAlias("diskName")??
  • ????private?String?name;??
  • ????private?int?totalSize;??
  • ????private?int?avilableSize;??
  • ????private?int?usedSize;??
  • ??
  • ????public?String?getName()?{??
  • ????????return?name;??
  • ????}??
  • ??
  • ????public?void?setName(String?name)?{??
  • ????????this.name?=?name;??
  • ????}??
  • ??
  • ????public?int?getTotleSize()?{??
  • ????????return?totalSize;??
  • ????}??
  • ??
  • ????public?void?setTotleSize(int?totleSize)?{??
  • ????????this.totalSize?=?totleSize;??
  • ????}??
  • ??
  • ????public?int?getAvilableSize()?{??
  • ????????return?avilableSize;??
  • ????}??
  • ??
  • ????public?void?setAvilableSize(int?avilableSize)?{??
  • ????????this.avilableSize?=?avilableSize;??
  • ????}??
  • ??
  • ????public?int?getUserSize()?{??
  • ????????return?usedSize;??
  • ????}??
  • ??
  • ????public?void?setUserSize(int?userSize)?{??
  • ????????this.usedSize?=?userSize;??
  • ????}??
  • ??
  • ????public?String?toString()?{??
  • ????????StringBuilder?sb?=?new?StringBuilder();??
  • ????????sb.append(name?+?"\r\n");??
  • ????????sb.append("TotalSize:"?+?totalSize?+?"|Used?Size:"?+?usedSize??
  • ????????????????+?"|Available?Size:"?+?avilableSize);??
  • ????????return?sb.toString();??
  • ????}??
  • }??
  • ??
  • package?com.ajita.xstream;??
  • ??
  • import?java.util.List;??
  • ??
  • import?com.thoughtworks.xstream.annotations.XStreamAlias;??
  • ??
  • @XStreamAlias("HardwareInfo")??
  • public?class?HardwareInfo?{??
  • ????private?String?cpuInfo;??
  • ????private?String?networkInfo;??
  • ????private?List<DiskInfo>?diskInfos;??
  • ??
  • ????public?String?getCpuInfo()?{??
  • ????????return?cpuInfo;??
  • ????}??
  • ??
  • ????public?void?setCpuInfo(String?cpuInfo)?{??
  • ????????this.cpuInfo?=?cpuInfo;??
  • ????}??
  • ??
  • ????public?String?getNetworkInfo()?{??
  • ????????return?networkInfo;??
  • ????}??
  • ??
  • ????public?void?setNetworkInfo(String?networkInfo)?{??
  • ????????this.networkInfo?=?networkInfo;??
  • ????}??
  • ??
  • ????public?List<DiskInfo>?getDiskInfos()?{??
  • ????????return?diskInfos;??
  • ????}??
  • ??
  • ????public?void?setDiskInfos(List<DiskInfo>?diskInfos)?{??
  • ????????this.diskInfos?=?diskInfos;??
  • ????}??
  • ??
  • ????public?String?toString()?{??
  • ????????StringBuilder?sb?=?new?StringBuilder();??
  • ????????sb.append(cpuInfo);??
  • ????????sb.append("\r\n");??
  • ????????sb.append(networkInfo);??
  • ????????sb.append("\r\n");??
  • ????????for?(DiskInfo?disk?:?diskInfos)?{??
  • ????????????sb.append(disk.toString());??
  • ????????????sb.append("\r\n");??
  • ????????}??
  • ????????return?sb.toString();??
  • ????}??
  • }??

  • 3.新建測試代碼?

    Java代碼??
  • package?com.ajita.xstream;??
  • ??
  • import?java.util.ArrayList;??
  • ??
  • import?com.thoughtworks.xstream.XStream;??
  • ??
  • public?class?TestXStream?{??
  • ????/**?
  • ?????*?@param?args?
  • ?????*/??
  • ????public?static?void?main(String[]?args)?{??
  • ????????DiskInfo?disk1?=?new?DiskInfo();??
  • ????????disk1.setName("D:\\");??
  • ????????disk1.setTotleSize(100);??
  • ????????disk1.setUserSize(20);??
  • ????????disk1.setAvilableSize(80);??
  • ????????DiskInfo?disk2?=?new?DiskInfo();??
  • ????????disk2.setName("E:\\");??
  • ????????disk2.setTotleSize(200);??
  • ????????disk2.setUserSize(40);??
  • ????????disk2.setAvilableSize(160);??
  • ??
  • ????????ArrayList<DiskInfo>?diskInfos?=?new?ArrayList<DiskInfo>();??
  • ????????diskInfos.add(disk1);??
  • ????????diskInfos.add(disk2);??
  • ??
  • ????????HardwareInfo?hwInfo?=?new?HardwareInfo();??
  • ????????hwInfo.setCpuInfo("cpu?info?is?...");??
  • ????????hwInfo.setNetworkInfo("network?info?is?...");??
  • ????????hwInfo.setDiskInfos(diskInfos);??
  • ??
  • ????????XStream?xStream?=?new?XStream();??
  • ????????xStream.autodetectAnnotations(true);??
  • ????????String?xml?=?xStream.toXML(hwInfo);??
  • ????????System.out.println(xml);??
  • ??
  • ????????HardwareInfo?info2?=?(HardwareInfo)?xStream.fromXML(xml);??
  • ????????System.out.println(info2);??
  • ????}??
  • ??
  • }??

  • 輸出如下:?

    Java代碼??
  • <HardwareInfo>??
  • ??<cpuInfo>cpu?info?is?...</cpuInfo>??
  • ??<networkInfo>network?info?is?...</networkInfo>??
  • ??<diskInfos>??
  • ????<DiskInfo?diskName="D:\">??
  • ??????<totalSize>100</totalSize>??
  • ??????<avilableSize>80</avilableSize>??
  • ??????<usedSize>20</usedSize>??
  • ????</DiskInfo>??
  • ????<DiskInfo?diskName="E:\">??
  • ??????<totalSize>200</totalSize>??
  • ??????<avilableSize>160</avilableSize>??
  • ??????<usedSize>40</usedSize>??
  • ????</DiskInfo>??
  • ??</diskInfos>??
  • </HardwareInfo>??
  • cpu?info?is?...??
  • network?info?is?...??
  • D:\??
  • TotalSize:100|Used?Size:20|Available?Size:80??
  • E:\??
  • TotalSize:200|Used?Size:40|Available?Size:160??

  • 4.常用XStream注解?
    1)@XStreamAlias注解可在類與屬性上使用設(shè)置名稱,相當(dāng)于: xstream.alias("blog", Blog.class);?
    2)@XStreamImplicit去集合節(jié)點(diǎn)名:相當(dāng)于 xstream.addImplicitCollection(Blog.class, "entries");?
    3) @XStreamConverter(SingleValueCalendarConverter.class)?
    ??? private Calendar createdTime = new GregorianCalendar();

    總結(jié)

    以上是生活随笔為你收集整理的XStream转换Java对象与XML的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。