最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Bean與xml互相轉(zhuǎn)換的方法分析

 更新時間:2018年12月18日 12:06:24   作者:天涯海角路  
這篇文章主要介紹了Java Bean與xml互相轉(zhuǎn)換的方法,結(jié)合實例形式分析了java bean與xml轉(zhuǎn)換的原理與相關操作技巧,需要的朋友可以參考下

本文實例講述了Java Bean與xml互相轉(zhuǎn)換的方法。分享給大家供大家參考,具體如下:

XML和Java Bean互相轉(zhuǎn)換是一個很有用的功能,因為兩者有著前后合作的關系,但解析的過程比較痛苦。下面介紹如何進行XML和Java Bean的互相轉(zhuǎn)換。

最近項目中用到了xml和java bean的轉(zhuǎn)換

用到xml的時候我們需要遍歷解析。。。然后將解析的值放入聲明好的java bean,過程很痛苦,結(jié)果很美好

我們能不能直接從xml轉(zhuǎn)化到java bean呢,或者直接成java bean轉(zhuǎn)化到xml呢?

答案是OK的

使用jar包:org.nuxeo.common.xmap

寫個小例子

XML

<?xml version="1.0" encoding="UTF-8"?>
<books>
<book no="1">
<title>java是傻逼</title>
<subject>java</subject>
<subject>xml</subject>
<price>10</price>
</book>
<book no="2">
<title>c++程序設計</title>
<subject>C++</subject>
<subject>c</subject>
<price>10</price>
</book>
</books>

Books類

import java.util.ArrayList;
import java.util.List;
import org.nuxeo.common.xmap.annotation.XNodeList;
import org.nuxeo.common.xmap.annotation.XObject;
@XObject(value = "books")
public class Books {
  @XNodeList(value = "book", type = ArrayList.class, componentType = Book.class)
  private List< Book> book;
  public List< Book> getBook() {
    return book;
  }
  public void setBook(List< Book> book) {
    this.book = book;
  }
  public void addBook(Book b){
    if(book==null){
      book=new ArrayList< Book>();
    }
    book.add(b);
  }
}

Book類

import java.util.ArrayList;
import java.util.List;
import org.nuxeo.common.xmap.annotation.XNode;
import org.nuxeo.common.xmap.annotation.XNodeList;
import org.nuxeo.common.xmap.annotation.XObject;
@XObject
public class Book {
  @XNode("title")
  private String  title;
  @XNode("@no")
  private String no;
  @XNodeList(value = "subject", type = ArrayList.class, componentType = String.class)
  private List< String> subjects;
  @XNode("price")
  private int  price;
  public String getTitle() {
    return title;
  }
  public void setTitle(String title) {
    this.title = title;
  }
  public List< String> getSubjects() {
    return subjects;
  }
  public void setSubjects(List< String> subjects) {
    this.subjects = subjects;
  }
  public int getPrice() {
    return price;
  }
  public void setPrice(int price) {
    this.price = price;
  }
  public String getNo() {
    return no;
  }
  public void setNo(String no) {
    this.no = no;
  }
}

測試類:

import java.util.ArrayList;
import java.util.List;
import org.nuxeo.common.xmap.XMap;
public class XmapTest {
  public static void main(String[] args) {
    try {
      //聲明一組書的根節(jié)點
      Books books=new Books();
      //聲明一本書
      Book book=new Book();
      //書的類型
      List< String> sj=new ArrayList< String>();
      sj.add("java");
      sj.add("xml");
      //設置書節(jié)點的屬性
      book.setPrice(10);
      book.setTitle("java是傻逼");
      book.setSubjects(sj);
      book.setNo("1");
      //將書節(jié)點添加到跟節(jié)點
      books.addBook(book);
     //聲明一本書
      Book book2=new Book();
      //書的類型
      List< String> sj2=new ArrayList< String>();
      sj2.add("C++");
      sj2.add("c");
      //設置書節(jié)點的屬性
      book2.setPrice(10);
      book2.setTitle("c++程序設計");
      book2.setSubjects(sj2);
      book2.setNo("2");
      //將書節(jié)點添加到跟節(jié)點
      books.addBook(book2);
      XMap xmp = new XMap();
      xmp.register(Books.class);
      List< String> filters = new ArrayList< String>();
      System.out.println(xmp.asXmlString(books, "UTF-8", filters, true));
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

運行上面這個類就可以生成開頭所看見的那個XML的內(nèi)容

解析xml

xmap.register(Books.class);
      URL url = new File("book.xml").toURL();
      InputStream in = new FileInputStream(new File("book.xml"));
      Object[] result = (Object[]) xmap.loadAll(in);
Books books=(Books)result[0];

數(shù)據(jù)就完全autowire by name進入到了bean,某些情況下很好用(xml很整齊,每個節(jié)點的內(nèi)容都一樣,固定)

XML和Java Bean互相轉(zhuǎn)換就此實現(xiàn)。

PS:這里再為大家推薦幾款相關在線工具供大家參考:

在線JSON轉(zhuǎn)Java Bean代碼工具:
http://tools.jb51.net/code/json2javabean

在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson

XML在線壓縮/格式化工具:
http://tools.jb51.net/code/xml_format_compress

更多關于java算法相關內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設計有所幫助。

相關文章

  • Springboot整合MongoDB的Docker開發(fā)教程全解

    Springboot整合MongoDB的Docker開發(fā)教程全解

    這篇文章主要介紹了Springboot整合MongoDB的Docker開發(fā),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2020-07-07
  • Spark調(diào)度架構(gòu)原理詳解

    Spark調(diào)度架構(gòu)原理詳解

    這篇文章主要介紹了Spark 調(diào)度架構(gòu)原理詳解,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • jeefast和Mybatis實現(xiàn)三級聯(lián)動的示例代碼

    jeefast和Mybatis實現(xiàn)三級聯(lián)動的示例代碼

    這篇文章主要介紹了jeefast和Mybatis實現(xiàn)三級聯(lián)動的示例代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • String.join()方法示例詳解

    String.join()方法示例詳解

    String.join() 方法是連接指定數(shù)組的元素或集合的成員,在每個元素或成員之間使用指定的分隔符,這篇文章主要介紹了String.join()方法示例詳解,需要的朋友可以參考下
    2024-01-01
  • Java 輸入流中的read(byte[] b)方法詳解

    Java 輸入流中的read(byte[] b)方法詳解

    這篇文章主要介紹了Java 輸入流中的read(byte[] b)方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Java詳解線上內(nèi)存暴漲問題定位和解決方案

    Java詳解線上內(nèi)存暴漲問題定位和解決方案

    本篇文章介紹了我在開發(fā)過程中遇到的線上內(nèi)存暴漲的問題,以及定位問題原因和解決該問題的過程及思路,通讀本篇對大家的學習或工作具有一定的價值,需要的朋友可以參考下
    2021-10-10
  • spring?boot集成redisson的最佳實踐示例

    spring?boot集成redisson的最佳實踐示例

    這篇文章主要為大家介紹了spring?boot集成redisson的最佳實踐示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • Java中小球碰撞并使用按鈕控制數(shù)量實例代碼

    Java中小球碰撞并使用按鈕控制數(shù)量實例代碼

    這篇文章主要給大家介紹了關于Java中小球碰撞并使用按鈕控制數(shù)量的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2021-12-12
  • Spring+SpringMVC配置事務管理無效原因及解決辦法詳解

    Spring+SpringMVC配置事務管理無效原因及解決辦法詳解

    這篇文章主要介紹了Spring+SpringMVC配置事務管理無效原因及解決辦法詳解,具有一定借鑒價值,需要的朋友可以參考下
    2017-12-12
  • springboot+rabbitmq實現(xiàn)指定消費者才能消費的方法

    springboot+rabbitmq實現(xiàn)指定消費者才能消費的方法

    當項目部署到測試環(huán)境后,QA測試過程中,總是“莫名其妙”的發(fā)現(xiàn)所保存的用戶付款單數(shù)據(jù)有問題。這篇文章主要介紹了springboot+rabbitmq實現(xiàn)指定消費者才能消費,需要的朋友可以參考下
    2021-11-11

最新評論

马鞍山市| 彩票| 武清区| 井陉县| 旬阳县| 沁源县| 吉隆县| 文登市| 定陶县| 丰镇市| 定南县| 宁远县| 吉林省| 沂南县| 德化县| 西乡县| 阿拉尔市| 门头沟区| 七台河市| 临海市| 沁水县| 鲜城| 观塘区| 苏尼特左旗| 梧州市| 南召县| 九江市| 时尚| 五指山市| 林周县| 柘荣县| 西吉县| 定结县| 无为县| 安阳县| 丰镇市| 宁远县| 沙河市| 浠水县| 隆化县| 刚察县|