`
xiongpan0807
  • 浏览: 16471 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

通过JAXB实现完成java对象和xml的互相转换

    博客分类:
  • JAVA
阅读更多

 

在项目中我们常常需要将java对象转为Xml,将xml转为java对象,这些繁琐的操作我们使用JAXB的话就可以很轻松的实现,一起看一个例子吧
package com.xiongpan.model;

import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class ClassRoom {
       private String classid;
       private String classname;
       private List<Student> list= new ArrayList<Student>();
       public String getClassid() {
             return classid;
      }
       public void setClassid(String classid) {
             this. classid = classid;
      }
       public String getClassname() {
             return classname;
      }
       public void setClassname(String classname) {
             this. classname = classname;
      }
       public List<Student> getList() {
             return list;
      }
       public void setList(List<Student> list) {
             this. list = list;
      }
       public ClassRoom(String classid, String classname, List<Student> list) {
             super();
             this. classid = classid;
             this. classname = classname;
             this. list = list;
      }
       public ClassRoom() {
             super();
             
      }
       @Override
       public String toString() {

            StringBuffer sb= new StringBuffer();
            
            sb.append( "classid="+ this. classid+ "   ");
            sb.append( "classname"+ this. classname+ " ");
             for (Student st : list) {
                  sb.append(st.toString());
            }
             return sb.toString();
      }

}
 
package com.xiongpan.model;

public class Student {
      
       private String id;
       private String name;
       private int age;
       public String getId() {
             return id;
      }
       public void setId(String id) {
             this. id = id;
      }
       public String getName() {
             return name;
      }
       public void setName(String name) {
             this. name = name;
      }
       public int getAge() {
             return age;
      }
       public void setAge( int age) {
             this. age = age;
      }
       public Student(String id, String name, int age) {
             super();
             this. id = id;
             this. name = name;
             this. age = age;
      }
       public Student() {
             super();
             // TODO Auto-generated constructor stub
      }
       @Override
       public String toString() {
             return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
      }
      
}
 
package com.xiongpan.model;

import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;

import org.junit.Test;

public class MyTest {
	
	@Test
	public void testJaxbToXml(){
		
		try {
			
			Student s1=new Student("1", "ggd1", 21);
			Student s2=new Student("2", "ggd2", 21);
			Student s3=new Student("3", "ggd3", 21);
			Student s4=new Student("4", "ggd4", 21);
			Student s5=new Student("5", "ggd5", 26);
			Student s6=new Student("6", "ggd6", 21);
			Student s7=new Student("7", "ggd7", 26);
			
			List<Student> list=new ArrayList<Student>();
			list.add(s1);
			list.add(s2);
			list.add(s3);
			list.add(s4);
			list.add(s5);
			list.add(s6);
			list.add(s7);
			 
			ClassRoom classRoom=new ClassRoom("131123-1", "bestClassRoom", list);
			
			JAXBContext ct=JAXBContext.newInstance(ClassRoom.class);
			Marshaller marshaller=	ct.createMarshaller();
			marshaller.marshal(classRoom, System.out);
			
		} catch (JAXBException e) {
			e.printStackTrace();
		}
		
	}
	
	@Test
	public void TestjaxbToObject(){
		try {
			String xml="<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><classRoom><classid>131123-1</classid><classname>bestClassRoom</classname><list><age>21</age><id>1</id><name>ggd1</name></list><list><age>21</age><id>2</id><name>ggd2</name></list><list><age>21</age><id>3</id><name>ggd3</name></list><list><age>21</age><id>4</id><name>ggd4</name></list><list><age>26</age><id>5</id><name>ggd5</name></list><list><age>21</age><id>6</id><name>ggd6</name></list><list><age>26</age><id>7</id><name>ggd7</name></list></classRoom>";
			
			JAXBContext jaxbContext=JAXBContext.newInstance(ClassRoom.class);
			Unmarshaller unmarshaller=jaxbContext.createUnmarshaller();
			ClassRoom classRoom= (ClassRoom) unmarshaller.unmarshal(new StringReader(xml));
			
			System.out.println(classRoom.toString());
			
		} catch (JAXBException e) {
			e.printStackTrace();
		}
	}

}
 
testJaxbToXml执行结果
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><classRoom><classid>131123-1</classid><classname>bestClassRoom</classname><list><age>21</age><id>1</id><name>ggd1</name></list><list><age>21</age><id>2</id><name>ggd2</name></list><list><age>21</age><id>3</id><name>ggd3</name></list><list><age>21</age><id>4</id><name>ggd4</name></list><list><age>26</age><id>5</id><name>ggd5</name></list><list><age>21</age><id>6</id><name>ggd6</name></list><list><age>26</age><id>7</id><name>ggd7</name></list></classRoom>



 // xml  To java Object执行结果
classid=131123-1   classnamebestClassRoom Student [id=1, name=ggd1, age=21]Student [id=2, name=ggd2, age=21]Student [id=3, name=ggd3, age=21]Student [id=4, name=ggd4, age=21]Student [id=5, name=ggd5, age=26]Student [id=6, name=ggd6, age=21]Student [id=7, name=ggd7, age=26]

 
 

 

1
2
分享到:
评论

相关推荐

    JAXB技术实现xml与java对象互相转化代码教程

    使用java jdk的JAXB技术实现xml与java对象互相转化代码教程: JDK中JAXB相关的重要Class和Interface:(来源于百度百科JAXB) •JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。 •Marshaller接口,将Java...

    JAVA JAXB 解析XML嵌套子节点为字符串

    在Java开发中,JAXB(Java Architecture for XML Binding)是一个标准的API,用于将XML文档与Java对象之间进行互相转换。这个技术对于处理XML数据,尤其是解析和生成XML文档非常有用。当我们面临XML文档中存在嵌套子...

    java对象与xml的互相转换

    通过定义Java类和使用JAXB提供的`Marshaller`和`Unmarshaller`,我们可以方便地在Java对象和XML文档之间进行互换。对于更复杂的场景,例如Web服务交互,可能还需要其他相关的库,如`jaxws-api`。

    xml和java对象互相转换的两种方法

    本文将详细介绍两种主要的XML与Java对象互相转换的方法:DOM(Document Object Model)解析和JAXB(Java Architecture for XML Binding)。 1. DOM解析: DOM是一种W3C标准,它将XML文档解析成一棵由节点组成的树,...

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

    - **使用JAXB(Java Architecture for XML Binding)**:JAXB是Java标准API,可以自动将Java对象转换为XML和从XML反序列化为Java对象。只需为JavaBean添加适当的注解,然后使用JAXBContext和Marshaller进行转换。 ...

    java利用JAXB实现对象和xml互相转换方法与实例详解

    }}2.5 AdaptedMap.java 用于xml转换的Map包装类package jaxb;import javax.xml.bind.annotation.XmlElement;import javax.xml.bind.annotation.XmlElementWrapper;import javax.xml.bind.annotation.XmlType;import...

    jaxb xml 转map

    在Java世界中,JAXB(Java Architecture for XML Binding)是一个标准的API,用于将XML文档与Java对象之间进行互相转换。这个过程被称为对象绑定。在处理XML数据时,JAXB提供了一种方便的方式,让我们可以将XML数据...

    XML、JAVA、JSON多种方式互相转换

    - 使用Apache的JAXB(Java Architecture for XML Binding):JAXB允许将XML绑定到Java对象,然后再将这些对象转换为JSON。 2. JSON到XML转换: - Jackson库同样提供了反向转换功能,使用`writeValueAsString`方法...

    xml和bean 互相转换

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

    XML与Java对象互相转化Demo(Eclipse)

    此外,还可以使用第三方库如Apache Commons Digester或Castor来完成XML与Java对象的转化,它们提供了更灵活的配置和更强大的功能。 总结,这个示例项目主要教授了如何在Java中使用JAXB进行XML与Java对象的互转,这...

    XML JAXB入门示例

    JAXB(Java Architecture for XML Binding)是Java平台标准中的一个部分,它提供了一种将Java对象和XML文档之间进行互相转换的机制。通过JAXB,开发者可以方便地在Java对象和XML之间进行序列化和反序列化操作,极大...

    使用JAXB完成JAVAbean与xml互转

    Java Architecture for XML Binding (JAXB) 是Java平台上的一个标准技术,它允许在Java对象(如JavaBeans)和XML文档之间进行互相转换。这个过程被称为对象绑定,它简化了XML数据的处理,使得开发人员无需手动编写...

    jaxb-api-2.0.5.jar.zip

    **Java Architecture for XML Binding (JAXB)** 是Java平台上的一个标准技术,用于将XML文档与Java对象之间进行互相转换。`jaxb-api-2.0.5.jar` 是JAXB API的一个版本,它包含了用于处理XML到Java以及Java到XML转换...

    Jaxb简单例子

    这个简单的例子将带你深入理解JAXB的基本用法,包括注解的使用和Java与XML之间的互相转换。 **一、JAXB的基本概念** 1. **Java对象到XML**: JAXB允许我们将Java对象直接序列化为XML格式的文档,这称为对象到XML的...

    xml与json、javabean的互相转换

    对于XML,可以使用JAXB(Java Architecture for XML Binding)框架,它提供了从Java对象到XML和反向转换的API。 ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import javax.xml....

    Java,XML和Web服务宝典

    例如,JAXB(Java Architecture for XML Binding)允许Java对象与XML文档之间进行自动转换,简化了数据交换过程。另外,DOM4J和JDOM是流行的Java XML处理库,提供了丰富的API供开发者操作XML文档。 **Web服务的实现...

    xml与javabean的相互转换

    - 使用JAXB(Java Architecture for XML Binding):JAXB是Java平台的标准API,用于在Java对象和XML之间进行绑定。首先,你需要为JavaBean创建对应的XML Schema(XSD)文件,然后使用JAXB工具自动生成JavaBean类。...

    jdk10+ java.lang.NoClassDefFoundError: javax/xml/ws/Service 错误

    - `jaxb-api`: 提供了Java XML绑定(JAXB)API,用于将XML文档与Java对象互相转换。 - `jaxb-core`和`jaxb-impl`: 这两个是JAXB的具体实现,与`jaxb-api`配合使用。 - `jakarta.xml.ws-api`:Jakarta XML Web ...

    JAXB使用Socket流进行双向通信源码

    在Java编程领域,JAXB(Java Architecture for XML Binding)是一个用于将XML文档和Java对象互相转换的工具。它提供了一种高效、灵活的方式来处理XML数据,使得开发者可以在Java应用程序中轻松地实现XML的序列化和反...

Global site tag (gtag.js) - Google Analytics