1. 程式人生 > >XStream轉換list、多個節點。

XStream轉換list、多個節點。

XML檔案如下:

<MbfBody>
  <price>
    <cmmdtyCode>1</cmmdtyCode>
    <cityCode>1</cityCode>
    <storeCode>s</storeCode>
    <cmmdtyPrice>56</cmmdtyPrice>
    <oneExtendPrice>56</oneExtendPrice>
    <twoExtendPrice>56</twoExtendPrice>
    <threeExtendPrice>56</threeExtendPrice>
    <downTime>2012-12-12</downTime>
  </price>
  <price>
    <cmmdtyCode>2</cmmdtyCode>
    <cityCode>1</cityCode>
    <storeCode>s</storeCode>
    <cmmdtyPrice>56</cmmdtyPrice>
    <oneExtendPrice>56</oneExtendPrice>
    <twoExtendPrice>56</twoExtendPrice>
    <threeExtendPrice>56</threeExtendPrice>
    <downTime>2012-12-12</downTime>
  </price>
</MbfBody>

想使用XStream轉換為bean。

只需要使用@XStreamImplicit(itemFieldName="price")即可。

程式碼如下:

/**
 *
 * @author freedwindx
 */
@XStreamAlias("MbfBody")
public class XPriceDownloadItemList extends BaseDto{
    /**
     */
    private static final long serialVersionUID = -4942613159612187126L;
    
    
   @XStreamImplicit(itemFieldName="price")//這句話是關鍵
    private List<XPriceDownloadItem> downloadItems;
    
    /**
     * 
     */
    public XPriceDownloadItemList() {
        // TODO Auto-generated constructor stub
    }
    
    /**
     * @param downloadItems
     */
    public XPriceDownloadItemList(List<XPriceDownloadItem> downloadItems) {
        super();
        this.downloadItems = downloadItems;
    }



    /**
     * @param downloadItems the downloadItems to set
     */
    public void setDownloadItems(List<XPriceDownloadItem> downloadItems) {
        this.downloadItems = downloadItems;
    }
    
    /**
     * @return the downloadItems
     */
    public List<XPriceDownloadItem> getDownloadItems() {
        return downloadItems;
    }
上面是list,還需要一個對bean的註解。
/**
 * 
 * 功能描述: 
 * 
 * @author 作者 
 * @created 2013-12-24 上午9:08:12
 * @version 1.0.0
 * @date 2013-12-24 上午9:08:12
 */
@XStreamAlias("price")
public class XPriceDownloadItem extends BaseDto {

    private static final long serialVersionUID = 3803940743664353143L;

    @XStreamAlias("cmmdtyCode")
    private String cmmdtyCode;

    @XStreamAlias("cityCode")
    private String cityCode;

    @XStreamAlias("storeCode")
    private String storeCode;

    @XStreamAlias("cmmdtyPrice")
    private String cmmdtyPrice;

    @XStreamAlias("oneExtendPrice")
    private String oneExtendPrice;

    @XStreamAlias("twoExtendPrice")
    private String twoExtendPrice;

    @XStreamAlias("threeExtendPrice")
    private String threeExtendPrice;

    @XStreamAlias("downTime")
    private String downTime;


main函式:
 public static void main(String[] args) {
        XStream xStream = new XStream();
        xStream.autodetectAnnotations(true);
        XPriceDownloadItemList xPriceDownloadItemList = new XPriceDownloadItemList();
        List<XPriceDownloadItem> list = new ArrayList<XPriceDownloadItem>();
        XPriceDownloadItem x1 = new XPriceDownloadItem("1", "1", "s","56", "56", "56", "56", "2012-12-12");
        XPriceDownloadItem x2 = new XPriceDownloadItem("2", "1", "s","56", "56", "56", "56", "2012-12-12");
        list.add(x1);
        list.add(x2);
        xPriceDownloadItemList.setDownloadItems(list);
        String str = xStream.toXML(xPriceDownloadItemList);
        System.out.println(str);
        XPriceDownloadItemList x22 = (XPriceDownloadItemList) xStream.fromXML(str);
        System.out.println(x22.getDownloadItems().size());
    }

相關推薦

XStream轉換list節點

XML檔案如下: <MbfBody> <price> <cmmdtyCode>1</cmmdtyCode> <cityCode>1</cityCode> <sto

mongodb之單個例項主從配置節點

在大資料的時代,傳統的關係型資料庫要能更高的服務必須要解決高併發讀寫、海量資料高效儲存、高可擴充套件性和高可用性這些難題。不過就是因為這些問題Nosql誕生了。 NOSQL有這些優勢:  · 大資料量,可以通過廉價伺服器儲存大量的資料,輕鬆擺脫傳統mysql單表儲存量級限制

有自己的程式碼--題目:給定一個數組,裡面全是正整數數字大小表示這一步最可以向後移動幾個節點。總是從陣列第一元素開始移動問如何移動,可以以最少步數移動到最後一個節點。

原文:https://yq.aliyun.com/articles/547799 描述: 題目:給定一個數組,裡面全是正整數。數字大小表示這一步最多可以向後移動幾個節點。總是從陣列第一個元素開始移動。問如何移動,可以以最少步數移動到最後一個節點。 例如:[3,4,2

uni-app 是一個使用 Vue.js 開發跨平臺應用的前端框架,開發者編寫一套程式碼,可編譯到iOSAndroid微信小程式等平臺

uni-app 是一個使用 Vue.js 開發跨平臺應用的前端框架,開發者編寫一套程式碼,可編譯到iOS、Android、微信小程式等多個平臺。 uni-app在跨端數量、擴充套件能力、效能體

Python刪除list相同元素

個人 err val pos 倒序 pan move 信息 style pop和remove方法都可以刪除list中的元素,個人更傾向於使用remove方法,因為在刪除過程中不會打印信息,安靜的把任務完成。 pop方法:刪除過程中會打印信息 >>>

sersync 臺服務器目錄的時時同步備份

sersync sersync時時同步 同步軟件 一、為什麽要用Rsync+sersync架構?1、sersync是基於Inotify開發的,類似於Inotify-tools的工具2、sersync可以記錄下被監聽目錄中發生變化的(包括增加、刪除、修改)具體某一個文件或某一個目錄的名字,然後使用r

Python全棧__函數的有用信息帶參數的裝飾器裝飾器裝飾一個函數

G1 lee 參數 sed 信息 back red cdc subclass 1、函數的有用信息   代碼1: 1 def login(username, password): 2 """ 3 此函數需要用戶名,密碼兩個參數,完成的是登

10-5裝飾器進階_帶參數的裝飾器裝飾器裝飾同一個函數

image star 結果 一個 -- sta highlight 是否 bsp 帶參數的裝飾器 只用在裝飾器最外層嵌套一個即可,以達到輕易控制裝飾器函數是否執行的作用 import time flag = False def timmer_outer(flag):

寫氣泡排序可以排序字串

//寫氣泡排序可以排序多個字串 #include <stdio.h> #include <string.h> void bubble_sort_str(char *str[], int sz) { int i = 0; int j = 0; for (i =

css基礎:樣式之定位樣式之隱藏二級選單列表轉表格圖片精靈技術

<html lang="en"><head>    <meta charset="UTF-8">    <title>樣式之定位position</title>    <style&g

單例的兩種實現方式版本及利弊對照

        單例設計模式,顧明思議,只有一個例項,先交代重要一點,為防止外界對該類進行例項化,需要把類的建構函式宣告為私有的,這樣大家對原理理解更深入些。 1、餓漢式 餓漢模式單例程式碼,經典,可用,無需改進。 package com.sing

AJAX+Servlet3.0實現非同步檔案上傳(單個檔案檔案上傳帶檔案的表單提交)

   一、上傳單個檔案           1.JSP頁面程式碼       <%@ page language="java" contentType="text/html;

32python繪製柱形圖單個堆積雙向柱形圖

目錄 一、繪圖函式 二、案例 第一、單個柱形圖 第二個、多個柱形圖 第三、堆積柱形圖 第四、雙向柱形圖   柱形圖:一種長方形的單位長度,根據資料大小回繪製的統計圖,用來比較兩個或以上的資料(時間或類別) 一、繪圖函式 bar(left,right,

手把手教你從原始碼開始搭建自己的以太坊公鏈(四)部署及連線節點

1. 使用相同的創世區塊檔案genesis.json 創世區塊genesis.json檔案內容如下: { "config": { "chainId": 100, "homestea

listmap的key相同的value相加

將多個map中key相同的value值相加合併成一個map 先將多個map放一個list中 result資料: [{"town":7,"district":6,"village":23}, {"town":7,"district":6,"village":23}

讓一個數組中存在N函式讓每個函式執行的 時候自動加1

function test(){ var arr = [ ]; for (var i = 0; i < 10; i++) { (function(i){ arr[i] = function(){ console.log(i);

搭建節點的hadoop叢集環境(CDH)

提示:如果還不瞭解Hadoop的,可以下檢視這篇文章Hadoop生態系統,通過這篇文章,我們可以首先大致瞭解Hadoop及Hadoop的生態系統中的工具的使用場景。 搭建一個分散式的hadoop叢集環境,下面是詳細步驟,使用cdh5 。 一、硬體準備

時間的處理(一年一個月一天)

//時間格式化 Date.prototype.Format = function (fmt) { //author: meizz var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(),

Unity shader教程-第三課:實踐!同一個shader,material

更多更及時的文章請關於98教育 這節課我們開始利用我們學到的Properties知識來改動程式碼,用一個shader實現如下圖的幾個不同的球體: 步驟: 使用MonoDevelop開啟shader檔案保證Properties裡面是如下內容 _Emissi

Linux下佈置Tomcat,同時執行Tomcat

轉載這個老哥的https://www.cnblogs.com/webcc/archive/2012/08/22/2651084.html扣號內是我自己操作時的一些問題和決解方法。環境說明:作業系統:  RedHet 5.3JDK版本:  1.4.2WEB容器:    Tomc