`

JAXB完成对象与XML之间的转换

    博客分类:
  • XML
 
阅读更多

1.Maven Dependency

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.fool.xml</groupId>
	<artifactId>xml</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<junit-version>4.11</junit-version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${junit-version}</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

 

2.Project Directory



3.src/main/java

Group.java

package org.fool.xml.jaxb;

public class Group
{
	private int id;
	private String name;

	public Group()
	{
	}

	public Group(int id, String name)
	{
		this.id = id;
		this.name = name;
	}

	public int getId()
	{
		return id;
	}

	public void setId(int id)
	{
		this.id = id;
	}

	public String getName()
	{
		return name;
	}

	public void setName(String name)
	{
		this.name = name;
	}

	@Override
	public String toString()
	{
		return "Group [id=" + id + ", name=" + name + "]";
	}

}

User.java

package org.fool.xml.jaxb;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class User
{
	private int id;
	private String username;
	private String password;
	private String nickname;
	private Group group;

	public User()
	{
	}

	public User(int id, String username, String password, String nickname,
			Group group)
	{
		this.id = id;
		this.username = username;
		this.password = password;
		this.nickname = nickname;
		this.group = group;
	}

	public int getId()
	{
		return id;
	}

	public void setId(int id)
	{
		this.id = id;
	}

	public String getUsername()
	{
		return username;
	}

	public void setUsername(String username)
	{
		this.username = username;
	}

	public String getPassword()
	{
		return password;
	}

	public void setPassword(String password)
	{
		this.password = password;
	}

	public String getNickname()
	{
		return nickname;
	}

	public void setNickname(String nickname)
	{
		this.nickname = nickname;
	}

	public Group getGroup()
	{
		return group;
	}

	public void setGroup(Group group)
	{
		this.group = group;
	}

	@Override
	public String toString()
	{
		return "User [id=" + id + ", username=" + username + ", password="
				+ password + ", nickname=" + nickname + ", group=" + group
				+ "]";
	}

}

 

4.src/test/java

TestJaxb.java

package org.fool.xml.test;

import java.io.File;

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

import org.fool.xml.jaxb.Group;
import org.fool.xml.jaxb.User;
import org.junit.Test;

public class TestJaxb
{
	@Test
	public void testJavaToXML()
	{
		try
		{
			JAXBContext ctx = JAXBContext.newInstance(User.class);
			Marshaller marshaller = ctx.createMarshaller();

			Group group = new Group(1, "Develop");
			User user = new User(1, "JAXB", "JAXB", "XML", group);

			marshaller.marshal(user, new File("jaxb.xml"));
		}
		catch (JAXBException e)
		{
			e.printStackTrace();
		}
	}

	@Test
	public void testXMLtoJava()
	{
		try
		{
			JAXBContext ctx = JAXBContext.newInstance(User.class);
			Unmarshaller unmarshaller = ctx.createUnmarshaller();

			User user = (User) unmarshaller.unmarshal(new File("jaxb.xml"));
			
			System.out.println(user);
		}
		catch (JAXBException e)
		{
			e.printStackTrace();
		}

	}
}

 

5.Result

testJavaToXML

jaxb.xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<user>
	<group>
		<id>1</id>
		<name>Develop</name>
	</group>
	<id>1</id>
	<nickname>XML</nickname>
	<password>JAXB</password>
	<username>JAXB</username>
</user>

testXMLtoJava

console output

User [id=1, username=JAXB, password=JAXB, nickname=XML, group=Group [id=1, name=Develop]]

 

 

 

  • 大小: 11.1 KB
分享到:
评论

相关推荐

    利用JAXB进行xml和javabean之间转换

    总之,JAXB是Java开发中处理XML的强大工具,通过它可以高效地进行XML与Java对象之间的转换,简化了数据交换过程。熟练掌握JAXB的使用,能大大提高开发效率,并让代码更加简洁、易于维护。在实际项目中,可以结合标签...

    JAXB工具类 xml转为java对象 java对象转为xml

    要将XML转换为Java对象,首先需要一个对应的Java类,该类的字段与XML元素对应。JAXB通过注解这些字段来完成映射,如`@XmlElement`、`@XmlAttribute`等。以下是一个简单的例子: ```java import javax.xml.bind....

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

    Java Architecture for XML Binding (JAXB) 是一个Java标准,它提供了在Java对象和XML文档之间进行自动转换的能力。这项技术极大地简化了XML数据处理,使得开发者可以方便地将Java对象序列化为XML,或者从XML数据中...

    webservice之使用jaxb把xml转换Object或把对象转换成xml文件

    JAXB与其他XML处理技术(如DOM、SAX、StAX)相比,更注重于对象模型与XML之间的绑定,适用于需要频繁进行对象与XML转换的场景。而DOM适合处理小规模的XML文档,SAX和StAX则适用于大文件流式处理。 总结,JAXB是Java...

    [转载] JAXB中Java对象和XML之间的转换

    在Java对象和XML之间的转换过程中,JAXB主要涉及到以下几个关键概念: 1. **Java类与XML Schema绑定**: JAXB使用`@XmlRootElement`和`@XmlElement`等注解将Java类的字段与XML元素对应。XML Schema定义了XML文档的...

    使用JAXB完成JAVAbean与xml互转

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

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

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

    使用jaxb根据xsd生成xml文档

    通过将数据模型与XML结构绑定,开发者可以方便地在Java对象和XML文档之间进行转换。这个过程包括创建XSD文件、生成Java类、配置JAXB绑定、创建和填充Java对象,最后使用`Marshaller`生成XML文档。了解并熟练掌握这一...

    JAXB xml与对象转换

    1. **自动化转换**:JAXB自动处理XML和Java对象之间的转换,无需手动编写解析和序列化的代码。 2. **效率高**:由于是Java平台的标准,JAXB的性能表现良好,且内存占用相对较低。 3. **灵活性**:支持动态绑定,可以...

    JAXB与xml相互转换实例

    Java Architecture for XML Binding(JAXB)是Java平台上的一个标准技术,它允许开发者在XML文档和Java对象之间进行无缝转换。这项技术的核心理念是通过自动的编译过程,将XML Schema(XSD)定义的数据结构映射为...

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

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

    [精品]JAVA6新特性介绍使用JAXB来实现对象与XML之间的映射.doc

    【JAVA6新特性:JAXB简介】 Java Architecture for XML Binding(JAXB)是Java平台上的一个...通过注解,JAXB提供了更加直观和灵活的方式来绑定Java对象和XML文档,这对于需要频繁进行对象-XML转换的项目尤其有价值。

    利用jaxb实现xml和bean互转

    4. **Unmarshalling**: 反之,将XML转换回Java对象的过程称为 unmarshalling。这可以通过使用JAXB的`Unmarshaller`接口完成。 **二、JAXB的使用步骤** 1. **创建Java Bean**: 首先,定义一个或多个Java类,它们...

    jaxb生成XML例子

    JAXB (Java Architecture for XML Binding) 是 Java 中用于对象到XML以及XML到对象转换的API。它使得开发者能够轻松地将Java对象模型映射到XML文档,并反之亦然。在给定的例子中,我们将深入理解如何使用JAXB注解来...

    JAXB 生成XML文件

    Java Architecture for XML Binding (JAXB) 是Java平台上的一个标准技术,用于在Java对象和XML文档之间进行数据绑定。它允许开发人员通过简单的注解(annotations)将Java类与XML Schema映射,从而实现XML文档的序列...

    jaxb (XML操作)

    **JAXB(Java Architecture for XML Binding)** 是Java平台中用于处理XML的一种强大的工具,它提供了将XML文档与Java对象之间的映射,从而方便XML数据的解析和生成。通过JAXB,开发者可以轻松地实现XML数据到Java...

    jaxb解析生成xml

    Java Architecture for XML Binding (JAXB) 是Java平台中用于处理XML和Java对象之间转换的一个标准技术。它允许我们将XML文档转换为Java对象,反之亦然,使得数据交换变得更加简单。在Java开发中,JAXB是处理XML数据...

    用JAXB生成一个XML

    通过这种方式,可以有效地实现XML数据和Java对象之间的相互转换,极大地简化了基于XML的应用程序的开发过程。需要注意的是,在实际应用中可能还需要考虑更多的细节和异常处理,但本文所介绍的基础知识已经足够让你...

    处理对象与xml之间的转换demo

    对象与XML之间的转换是一项常见的任务,特别是在数据交换、配置文件处理或序列化场景中。本教程将详细介绍如何在Java、Python和C#这三种主流编程语言中实现对象到XML以及XML到对象的转换,以满足不同需求。 **1. ...

    JAVA对象与XML相互转化DEMO

    本示例"JAVA对象与XML相互转化DEMO"聚焦于如何在Java中实现对象与XML之间的互转,这对于理解和处理数据交换至关重要。 首先,Java中实现XML到对象的转换主要依赖于JAXB(Java Architecture for XML Binding)。JAXB...

Global site tag (gtag.js) - Google Analytics