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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

复杂的xml转化为java实体

發布時間:2025/7/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 复杂的xml转化为java实体 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

 一、樣例一:

    以根據訂單號向支付寶查詢支付是否成功為例(成功信息)

    失敗信息:

    <?xml version="1.0" encoding="utf-8"?>

      <alipay>
        <is_success>F</is_success>
        <error>TRADE_NOT_EXIST</error>
      </alipay>

    成功信息:

    <?xml version="1.0" encoding="utf-8"?>

      <alipay>
        <is_success>T</is_success>
          <request>
            <param name="_input_charset">utf-8</param>
            <param name="service">single_trade_query</param>
            <param name="partner">2088121424678319</param>
            <param name="out_trade_no">H161021114440198N</param>
          </request>
          <response>
            <trade>
              <body>訂單:T16102111443568</body>
              <buyer_email>1176760525@qq.com</buyer_email>
              <buyer_id>2088402231747066</buyer_id>
              <discount>0.00</discount>
              <flag_trade_locked>0</flag_trade_locked>
              <gmt_create>2016-10-21 11:45:06</gmt_create>
              <gmt_last_modified_time>2016-10-21 11:45:16</gmt_last_modified_time>
              <gmt_payment>2016-10-21 11:45:17</gmt_payment>
              <is_total_fee_adjust>F</is_total_fee_adjust>
              <operator_role>B</operator_role>
              <out_trade_no>H161021114440198N</out_trade_no>
              <payment_type>1</payment_type>
              <price>0.01</price>
              <quantity>1</quantity>
              <seller_email>pay@gstarcad.com</seller_email>
              <seller_id>2088121424678319</seller_id>
              <subject>的生活費...</subject>
              <time_out>2017-01-20 11:45:17</time_out>
              <time_out_type>finishFPAction</time_out_type>
              <to_buyer_fee>0.00</to_buyer_fee>
              <to_seller_fee>0.01</to_seller_fee>
              <total_fee>0.01</total_fee>
              <trade_no>2016102121001004060245497067</trade_no>
              <trade_status>TRADE_SUCCESS</trade_status>
              <use_coupon>F</use_coupon>
            </trade>
           </response>
           <sign>25217c932f49868371a301e3151201a2</sign>
           <sign_type>MD5</sign_type>
        </alipay>

    首先解析is_success字段的值,看看結果是T(成功)還是F(失敗),具體就不詳細作解釋,這里只分析為T時的數據,一定要判斷,否則若為F再解析因XML格式不一會報錯

    Map<Object, Object> map = new HashMap<Object, Object>();

    map = XMLUtil.doXMLParse(result);
    String is_success = map.get("is_success").toString();

  1、工具類XStreamHandle中定義兩個方法:   

  /**

??  ?? * 實體轉xml字符串

????   * @param obj

?  ??? * @return

???  ? */

???   public static String toXml(Object obj) {

???????   XStream xstream = new XStream(new DomDriver("utf8"));

???????   xstream.processAnnotations(obj.getClass()); // 識別obj類中的注解

??????? ?return xstream.toXML(obj);

???   }

???   /**

????   * 字符串轉實體

????   * @param xmlStr

????   * @param cls

????   * @return

????   */

???   public static <T> T toBean(String xmlStr, Class<T> cls) {

?????  ?? XStream xstream = new XStream(new DomDriver());

??????  ? xstream.processAnnotations(cls);

?????  ?? @SuppressWarnings("unchecked")

???????   T t = (T) xstream.fromXML(xmlStr);

???????   return t;

???   }

  2、根據節點的層級關系定義實體(此為重點)

    由頂級節點alipay建的實體Alipay 類(Alipay -response-trade) request暫時不需要解析可用String接收

省略get,set方法

?

  Alipay 的下級節點response建造類Response

  

省略get,set方法

?

    Response的下級節點trade建造類    

xml中所有的標簽都要解析,否則會報錯

3、調用

  String xml="..."; ?//xml字符串

?  Alipay alipay = XStreamHandle.toBean(xml, Alipay.class);

  Trade trade =?alipay.getResponse().getTrade();

二、樣例二

  books中有好多book數,有價格,書名,作者

  xml樣式:  

      <?xml version="1.0" encoding="utf-8"?>

      <books>
        <book price="108">
          <name>Java編程思想</name>
           <author>Bruce Eckel</author>
        </book>
        <book price="52">
          <name>Effective Java</name>
          <author>Joshua Bloch</author>
        </book>
        <book price="118">
          <name>Java 7入門經典</name>
          <author>Ivor Horton</author>
        </book>
      </books>

  1、工具類還用樣例一中的工具類,這里不做重復了

  2、根據節點的層級關系定義實體

    根據頂級元素books創建實體

    

  根據子級創建book類

?3、調用

    String xmlString = "......"; ? //xml內容

    Books books = XStreamHandle.toBean(xmlString, Books.class);
    List<Book> booklist = books.getList();
    System.out.println(booklist.size());

?

?

轉載于:https://www.cnblogs.com/fengzhanfei/p/6140290.html

總結

以上是生活随笔為你收集整理的复杂的xml转化为java实体的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av毛片在线免费看 | 亚洲va中文字幕 | 91天堂网 | 沟厕沟厕近拍高清视频 | 久久久久中文字幕亚洲精品 | 中日韩一级片 | 韩国毛片基地 | 黄色成人免费观看 | 日本热久久 | 天堂在线观看免费视频 | 羞羞色视频 | 蜜桃视频成人 | 国产91丝袜在线18 | 久久精品国产露脸对白 | 老熟妇精品一区二区三区 | 国产人妖在线播放 | 久久综合操 | 午夜精产品一区二区在线观看的 | 欧美激情综合色综合啪啪五月 | 欧美精品一区二区成人 | 日本不卡二区 | 成人免费入口 | 99福利在线 | 呦呦精品| 久久久96| 制服丝袜av在线播放 | 国产精品一区二区网站 | 美女天天操 | 爱臀av| 日本视频一区二区 | 天堂精品视频 | 猫咪av网 | 特黄视频在线观看 | 欧美精品一区二区三区在线播放 | 欧美性bbw | 九七电影院97理论片 | 亚洲一级片免费看 | 麻豆精品免费观看 | 国产五十路 | 日韩欧美一区二区三区免费观看 | 色综合免费 | 亚洲欧美日韩一区在线观看 | 国产精品成人自拍 | 欧美三级一级 | 在线视频免费观看一区 | 中文字幕第18页 | 欧美精品二区三区四区免费看视频 | 日本xx视频| 日日噜噜噜夜夜爽爽狠狠视频97 | 国产成人精品亚洲日本在线观看 | www久久com| 波多野结衣在线免费观看视频 | 欧美日韩在线播放三区四区 | 97干干干 | 欧洲美女粗暴牲交免费观看 | 精品国产久| 亚洲最大成人网站 | 一区二区三区四区欧美 | 国产精品www在线观看 | 亚洲一本在线 | 午夜剧场福利 | 五月综合色婷婷 | 中文字幕精品无码一区二区 | 国产精品理论在线观看 | www性欧美| 91嫩草影视 | 欧美日在线 | 日韩精品一区二区三区久久 | 奶波霸巨乳一二三区乳 | 国产欧美精品一区二区三区app | 国产好片无限资源 | 成年人视频网址 | 亚洲国产精品久久久久久久 | 亚洲黄色录像片 | china国产乱xxxxx绿帽 | www.激情.com | 久久99日韩 | 国产剧情在线 | 四虎中文字幕 | 亚洲成年人在线 | 插我一区二区在线观看 | 福利视频精品 | 久久涩涩 | 日韩欧美黄 | 欧美人与性动交α欧美片 | free欧美性69护士呻吟 | 亚洲精品乱码久久久久久蜜桃91 | a毛片大片 | 日韩精美视频 | 天天插天天搞 | 精品字幕 | 超碰自拍 | 麻豆三级在线观看 | 国产二页 | 老太脱裤让老头玩ⅹxxxx | 日韩一区二区三区在线观看 | 婷婷在线免费 | 国产香蕉尹人视频在线 | 精品国产一级片 |