java bean与xml转换_Java Bean与xml互相转换的方法分析

本文实例讲述了Java Bean与xml互相转换的方法。分享给大家供大家参考,具体如下:

XML和Java Bean互相转换是一个很有用的功能,因为两者有着前后合作的关系,但解析的过程比较痛苦。下面介绍如何进行XML和Java Bean的互相转换。

最近项目中用到了xml和java bean的转换

用到xml的时候我们需要遍历解析。。。然后将解析的值放入声明好的java bean,过程很痛苦,结果很美好

我们能不能直接从xml转化到java bean呢,或者直接成java bean转化到xml呢?

答案是OK的

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

写个小例子

XML

java是傻逼

java

xml

10

c++程序设计

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;

}

}

测试类:

import java.util.ArrayList;

import java.util.List;

import org.nuxeo.common.xmap.XMap;

public class XmapTest {

public static void main(String[] args) {

try {

//声明一组书的根节点

Books books=new Books();

//声明一本书

Book book=new Book();

//书的类型

List< String> sj=new ArrayList< String>();

sj.add("java");

sj.add("xml");

//设置书节点的属性

book.setPrice(10);

book.setTitle("java是傻逼");

book.setSubjects(sj);

book.setNo("1");

//将书节点添加到跟节点

books.addBook(book);

//声明一本书

Book book2=new Book();

//书的类型

List< String> sj2=new ArrayList< String>();

sj2.add("C++");

sj2.add("c");

//设置书节点的属性

book2.setPrice(10);

book2.setTitle("c++程序设计");

book2.setSubjects(sj2);

book2.setNo("2");

//将书节点添加到跟节点

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的内容

解析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];

数据就完全autowire by name进入到了bean,某些情况下很好用(xml很整齐,每个节点的内容都一样,固定)

XML和Java Bean互相转换就此实现。

PS:这里再为大家推荐几款相关在线工具供大家参考:

在线JSON转Java Bean代码工具:http://tools.jb51.net/code/json2javabean

在线XML/JSON互相转换工具:http://tools.jb51.net/code/xmljson

XML在线压缩/格式化工具:http://tools.jb51.net/code/xml_format_compress

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值