java bean与xml转换_Java Bean与xml互相转换的方法分析
本文實(shí)例講述了Java Bean與xml互相轉(zhuǎn)換的方法。分享給大家供大家參考,具體如下:
XML和Java Bean互相轉(zhuǎn)換是一個(gè)很有用的功能,因?yàn)閮烧哂兄昂蠛献鞯年P(guān)系,但解析的過(guò)程比較痛苦。下面介紹如何進(jìn)行XML和Java Bean的互相轉(zhuǎn)換。
最近項(xiàng)目中用到了xml和java bean的轉(zhuǎn)換
用到xml的時(shí)候我們需要遍歷解析。。。然后將解析的值放入聲明好的java bean,過(guò)程很痛苦,結(jié)果很美好
我們能不能直接從xml轉(zhuǎn)化到j(luò)ava bean呢,或者直接成java bean轉(zhuǎn)化到xml呢?
答案是OK的
使用jar包:org.nuxeo.common.xmap
寫個(gè)小例子
XML
java是傻逼java
xml
10
c++程序設(shè)計(jì)C++
c
10
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;
}
}
測(cè)試類:
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é)點(diǎn)
Books books=new Books();
//聲明一本書
Book book=new Book();
//書的類型
List< String> sj=new ArrayList< String>();
sj.add("java");
sj.add("xml");
//設(shè)置書節(jié)點(diǎn)的屬性
book.setPrice(10);
book.setTitle("java是傻逼");
book.setSubjects(sj);
book.setNo("1");
//將書節(jié)點(diǎn)添加到跟節(jié)點(diǎn)
books.addBook(book);
//聲明一本書
Book book2=new Book();
//書的類型
List< String> sj2=new ArrayList< String>();
sj2.add("C++");
sj2.add("c");
//設(shè)置書節(jié)點(diǎn)的屬性
book2.setPrice(10);
book2.setTitle("c++程序設(shè)計(jì)");
book2.setSubjects(sj2);
book2.setNo("2");
//將書節(jié)點(diǎn)添加到跟節(jié)點(diǎn)
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();
}
}
}
運(yùn)行上面這個(gè)類就可以生成開頭所看見的那個(gè)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進(jìn)入到了bean,某些情況下很好用(xml很整齊,每個(gè)節(jié)點(diǎn)的內(nèi)容都一樣,固定)
XML和Java Bean互相轉(zhuǎn)換就此實(shí)現(xiàn)。
PS:這里再為大家推薦幾款相關(guān)在線工具供大家參考:
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
總結(jié)
以上是生活随笔為你收集整理的java bean与xml转换_Java Bean与xml互相转换的方法分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: centos java程序_刚得到一台c
- 下一篇: forward 方法详解 java_详解