`

java bean与xml相互转换

    博客分类:
  • java
 
阅读更多

最近在做的项目,在各个平台之间需要大量传输数据,且结构比较复杂,同时需要接近完全的配置化。

所以:想着各个系统之间,使用java bean来填充值,然后,转成xml进行传输,在服务器端再进行将xml转换成java bean,来处理的方式。

 

/**
 * xml 与 java bean 相互转换 单元 测试 
 * @author zhaoguoli
 * @version v1.0 2013-2-4 create
 */
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.junit.Test;
import org.nuxeo.common.xmap.XMap;


public class XmapTest {
	
	@Test
    public void javaToXml(){
        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);
            
   

            System.out.println(xmp.toXML(books));
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
	
	
	@Test
	public void xmlToJava() throws Exception{
		XMap xmap = new XMap();
		xmap.register(Books.class);
        InputStream in = new FileInputStream(new File("G:\\ers\\xxt_ers\\WEB-INF\\src\\cn\\xxt\\xmlbean\\books.xml"));
        Object result = xmap.load(in);
        
        System.out.println(result);
		Books books=(Books)result;		
		System.out.println(books);

	}
}

 

 

/**
 * 图书
 * @author zhaoguoli
 * @version v1.0 2013-2-4 create
 */
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.builder.ToStringBuilder;
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;
	}
	
	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this);
	}
}

 

/**
 * 图书列表
 * @author zhaoguoli
 * @version v1.0 2013-2-4 create
 */
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.builder.ToStringBuilder;
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);
    }
    
    /* (non-Javadoc)
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
    	// TODO Auto-generated method stub
    	return ToStringBuilder.reflectionToString(this);
    }
}

 

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <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>
</root>

 

分享到:
评论

相关推荐

    xml 转Java bean工具

    生成的Java Bean类会包含与XML元素相对应的字段,以及用于设置和获取这些字段值的方法。 描述中提到的"xml 转Java bean工具"进一步强调了这是一个专注于转换功能的工具。它可能是通过命令行界面或图形用户界面操作...

    xml和java bean互相转换工具包(简单易用)

    xml 与 bean 互相转换 工具类 1、bean类的属性需要遵守BEAN规范,否则 无法 读存BEAN值。 2、bean类的属性如果 是集合 只支持数组以及List、Map、Set。 3、bean类属性(boolean除外)前面两个字母要么全部小写,要么...

    将对象(java bean)转换为xml字符串

    XStream不仅能够将Java对象转换为XML,还可以反向将XML转换回Java对象,极大地简化了对象与XML之间的序列化和反序列化过程。 XStream库是由Johannes Lehtinen创建的一个开源项目,它是基于Java的,可以处理复杂的...

    Java Bean与xml互相转换的方法分析

    主要介绍了Java Bean与xml互相转换的方法,结合实例形式分析了java bean与xml转换的原理与相关操作技巧,需要的朋友可以参考下

    xml和bean 互相转换

    在Java开发中,XML(可扩展标记语言)和Bean之间的互相转换是一项常见的任务,尤其是在处理配置文件、数据交换或者序列化场景中。本篇将详细阐述XML与Bean之间的转换过程,以及相关的Java技术。 首先,XML是一种...

    JavaXml及Bean互转

    JAXB是Java的标准API,它提供了基于注解的方式来进行Java Bean与XML之间的转换。JAXB允许开发者在Java类上使用特定的注解来指定XML元素和属性的映射。 2. **使用步骤**: - 在Java Bean类上添加JAXB注解,如`@...

    java对象与xml的互相转换

    Java对象与XML之间的转换是Java开发中常见的需求,特别是在数据交换、配置文件存储或Web服务交互等场景。本文将深入探讨如何实现Java对象到XML以及XML到Java对象的转换。 首先,Java对象到XML的转换通常涉及到Java...

    java 使用 JAXB 将xml转换为 bean 包含xml和dto和读取文件的util类

    总结来说,这个压缩包提供的内容涉及了Java中使用JAXB进行XML与Java对象之间转换的实际应用,以及辅助的DTO和文件读取工具。这些对于理解和实现XML数据处理的Java应用非常有帮助。开发者可以通过学习和使用这些示例...

    java使用commons-betwixt 实现bean与xml互转

    Java中的Apache Commons Betwixt库提供了一个简单的方法来映射Java Bean对象和XML文档之间的数据,使得在处理数据交换时能轻松地实现bean到XML的转换和XML到bean的反转换。本篇文章将深入探讨如何使用Commons ...

    javabean和xml互相转换工具类以及jar包

    JavaBean和XML之间的转换在软件...在给定的资源中,`commons-betwixt-0.8.jar`提供了Betwixt库,而`Bean2xml.java`可能是实现转换的工具类,简化了开发工作。在实际项目中,根据需求和性能考虑选择合适的方法进行转换。

    使用Betwixt将XML转为JAVA Bean(内有JAR包)

    在Java开发中,数据对象(通常称为Bean)与XML之间的转换是常见的需求,尤其是在处理配置文件、序列化或网络通信时。Betwixt是一个Apache软件基金会提供的库,专门用于XML与Java对象之间的绑定,使得我们可以方便地...

    JAXBContext测试Java对象与xml的相互转换Demo

    在这个"JAXBContext测试Java对象与xml的相互转换Demo"中,我们将深入探讨如何利用JAXBContext实现这一功能。 首先,我们需要定义一个Java类,这个类将被映射为XML文档的元素。例如,我们可以创建一个`Person`类,...

    castor样例xml to bean和bean to xml样例

    2. Bean到XML转换: 反之,如果你有一个Java对象并且希望将其转换为XML格式,Castor也能轻松实现。通过调用Castor提供的序列化方法,你可以将Java对象转换为XML字符串或直接写入XML文件。这样,Java对象的数据就以...

    java-xml自动生成对象实体以及与xml相互转化.zip_Java doc转xml_java xml 转 实体_java 毕

    压缩包中的`trang.jar`可能是一个用于XML转换的工具,而`java中对象与xml相互转换.doc`可能是关于如何在Java中实现对象和XML之间转换的详细文档,涵盖了上述的一些技术点。 总之,Java XML处理技术是开发者必须掌握...

    xml to bean or bean to xml

    在提供的文件`ClassToXml.java`和`CC.java`中,很可能是实现了XML到Bean或Bean到XML转换的示例代码。具体实现细节需要查看源代码才能理解。通常,这些类会包含对JAXB API的调用,如创建JAXBContext、Unmarshaller和...

    使用jaxb将XML转化为JAVA BEAN

    JAXB是Java标准API,它提供了将XML文档与Java对象之间进行自动转换的能力,极大地简化了XML的处理。 首先,我们需要理解JAXB的工作原理。JAXB基于Java反射机制,通过在Java类上使用特定的注解(如@XmlRootElement、...

    xml文件自动转成java对象工具

    XML文件自动转换为Java对象工具是一种实用的开发辅助软件,它可以帮助程序员快速地将XML数据映射到Java类,从而简化了数据处理的过程。在Java开发中,XML常被用作数据交换格式,但手动编写Java类来表示XML结构既耗时...

    java类与xml之间相互转换实例

    Java 类与XML之间的相互转换是Java开发中常见的一项任务,特别是在处理配置文件、数据持久化或者网络通信时。XStream库提供了一种简单且高效的方式来实现这种转换,它是一个Java库,可以将Java对象序列化为XML,也...

    xml解析及使用XStream实现javaBean与xml之间的转换

    在`xmlAnalysis`文件夹中,可能包含了一个简单的Java程序,演示了如何使用DOM、SAX、StAX和XStream解析XML文件,并展示了XStream如何在JavaBean与XML之间进行转换。你可以运行这些代码,观察输出结果,以加深理解。...

    Converter between XML and Java Bean

    总之,"Converter between XML and Java Bean"涉及的关键知识点是利用如XStream这样的库实现XML与Java对象之间的转换,这在Java开发中是非常重要且实用的技能,尤其在处理数据交换、持久化存储和跨系统通信时。...

Global site tag (gtag.js) - Google Analytics