`
java从入门到放弃
  • 浏览: 44954 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java对象转成xml是如此简单-Marshaller

 
阅读更多

   我们已经知道了怎么样去讲xml转成对象了,现在,我们要把对象成xml文件,那怎么搞呢??

非常简单,大家跟着我一步一步去做就OK啦。

  我们现在有3个姑娘,分别是小红,小芳,小丽,现在,我们要把他们三个的信息存进一个叫girl.xml的文件中,并且这个xml的根节点叫root。我们首先定义好Girl。  

@XmlAccessorType(XmlAccessType.FIELD)  
class Girl {
	
	public Girl(){
		super();
	}
	
	public Girl(String name,String age,String cup){
		this.name=name;
		this.age=age;
		this.cup=cup;
	}
	
	@XmlElement(name = "name")
	private String name;
	
	@XmlElement(name = "age")
	private String age;
	
	@XmlElement(name = "cup")
	private String cup;
	
	public String toString(){
	  return name+","+age+","+cup+"\n";
	}
	
	//get方法和set方法···
}

 我们还要定义一个Root,因为他是根节点,并且他是所有的Girl的父节点,大家看:

@XmlRootElement(name = "root")  
class Root{

	@XmlElement(name = "girl")  
	private List<Girl> girls;
	

	public List<Girl> getGirls() {
		return girls;
	}

	public void setGirls(List<Girl> girls) {
		this.girls = girls;
	}
}

 我们跑起来看看:

public static void main(String[] args) {
		  try {
	      JAXBContext jaxbC = JAXBContext.newInstance(Root.class);
	      Marshaller ms=jaxbC.createMarshaller();
	      ms.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
	      Root root=new Root();
	      List<Girl> girls=new ArrayList<Girl>();
	      Girl g1=new Girl("小红", "20", "F");
	      Girl g2=new Girl("小芳", "16", "A");
	      Girl g3=new Girl("小丽", "17", "B");
	      girls.add(g1);
	      girls.add(g2);
	      girls.add(g3);
	      root.setGirls(girls);
	      StringWriter sw=new StringWriter();
	      ms.marshal(root, sw);
	      System.out.println(sw.toString());
		 } catch (JAXBException e) {
			e.printStackTrace();
		}
	}

 点击run,大家看:



 

是不是很赞???

来来来,总结一下,将java对象转成xml,用marshaller这个接口,我们需要做以下的事情:

1、定义好pojo,上面例子中的Girl和Root类

2、获取JAXBContext(jaxb上下文)

3、 Marshaller ms=jaxbC.createMarshaller();

       ms.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);

  创建marshaller的接口并且给他设置属性

4、给Root,Girl赋值,并且执行    ms.marshal(root, sw);

 

总结完用法之后,我们来学习一下Unmarshaller和Marshaller的原理吧,知道了原理,才算真正的牛逼!!!

 

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

相关推荐

    如何将java对象转换成xml

    - 创建一个`Marshaller`实例,然后调用其`marshal`方法将Java对象转换为XML字符串或写入文件。 3. **XStream使用**: - 引入XStream库,然后创建一个XStream实例。 - 使用`toXML()`方法将Java对象转换为XML字符...

    java对象转换成xml格式

    JAXB是Java SE的一部分,它提供了将Java对象直接转换为XML文档,以及从XML文档反序列化回Java对象的能力。首先,你需要为要转换的对象创建对应的Java类,并使用`@XmlRootElement`、`@XmlElement`等注解来指定XML...

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

    Java Architecture for XML Binding (JAXB) 是Java平台中用于处理XML和Java对象之间转换的一个标准API。它使得在Java应用程序中使用XML数据变得更加方便,无需手动编写大量的转换代码。本教程将详细介绍JAXB如何实现...

    Marshaller实现Java对象与xml的互转

    Marshaller来实现Java对象与xml的互转的源代码,这是博文中用到的源码,地址:http://blog.csdn.net/y353027520dx/article/details/43446549 大家可以直接下载后运行,一起学习学习。。

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

    3. 解析XML:有了Java类,我们就可以使用JAXB提供的`Unmarshaller`接口将XML文档解析成Java对象。以下是一个简单的示例: ```java JAXBContext jaxbContext = JAXBContext.newInstance(User.class); Unmarshaller ...

    castor :Java与xml互转示例---代码

    - **XML到Java对象的绑定(XML Binding)**:将XML文档解析成Java对象模型。 - **Java对象到XML的序列化**:将Java对象转换成XML格式的字符串或文件。 - **支持复杂的数据结构**:包括嵌套对象、数组、集合等。 - **...

    JAVA对象与XML互转

    - **生成XML**:通过`JAXBContext`实例,你可以获取`Marshaller`对象,然后调用`marshal()`方法将Java对象转换为XML字符串或文件。 2. **DOM解析**:Document Object Model(DOM)是另一种处理XML的方式。通过构建...

    xml转javaBean,javaBean转xml,xml标签大小写问题,以及对xml特殊符号的处理

    然后,使用JAXBContext实例化并生成Unmarshaller对象,通过unmarshal()方法将XML解析成Java对象。同样,可以使用Marshaller对象将JavaBean对象转换回XML。 2. JavaBean转XML: JavaBean转XML的过程与XML转JavaBean...

    java XML转成LIST可以转成指定的类数组

    当处理XML文件时,有时我们需要将其内容转换为Java对象,如List,以便于操作和处理。本篇文章将深入探讨如何将XML转换为指定类型的List数组,并涉及多层数据结构的处理。 1. **Java XML解析库** 在Java中,有多种...

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

    一旦建立了这种映射,我们就可以使用`Unmarshaller`来将XML文档解析为Java对象,或使用`Marshaller`将Java对象序列化为XML文档。 在XML到Bean的转换过程中,通常需要以下步骤: 1. **定义Java Bean类**:首先,...

    java对象生成xml数据

    通过`Marshaller`,你可以将Java对象转换成XML字符串、写入到文件或流中。例如,如果你有一个名为`myObject`的Java对象,并希望将其转换为XML字符串,可以这样做: ```java Marshaller marshaller = jaxbContext....

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

    JAXBContext是JAXB框架的核心,它扮演着一个工厂的角色,负责创建Unmarshaller(用于从XML到Java对象的转换)和Marshaller(用于从Java对象到XML的转换)。在这个"JAXBContext测试Java对象与xml的相互转换Demo"中,...

    xmlschema-core-2.0.3的jar

    3. **类型转换**:XML Schema定义了丰富的数据类型,库提供了将XML数据转换为Java对象,以及反之的功能。 4. **命名空间管理**:XML Schema支持命名空间,库能有效地管理和处理命名空间,确保正确解析和引用元素和...

    java对象与xml的互相转换

    同样使用JAXB,你可以创建一个`Unmarshaller`对象,然后调用其`unmarshal`方法将XML文档解析成对应的Java对象。 ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.Unmarshaller; public class ...

    JAVA对象与XML相互转化DEMO

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

    实用工具(一)-------java对象类、XML格式的相互转换

    这篇博客“实用工具(一)——Java对象类、XML格式的相互转换”主要探讨了如何在Java编程中处理对象与XML之间的互换。XML(eXtensible Markup Language)是一种结构化数据格式,广泛用于数据交换和存储,而Java对象...

    java对象转Xml

    - 使用`JAXBContext`的`createMarshaller()`方法创建`Marshaller`对象,然后调用`marshal()`方法,将Java对象转换为XML字符串或写入XML文件。 4. **DOM (Document Object Model)**: 另一种方法是使用DOM API,它...

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

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

    Java对象与xml转换

    Jackson的`jackson-dataformat-xml`模块和Gson的`gson-to-xml`库可以实现XML与Java对象的互转。 7. XMLBeans: - Apache的XMLBeans库提供了另一种Java对象到XML的映射方式,通过生成与XML schema对应的Java类,...

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

    3. **JAXB(Java Architecture for XML Binding)**:JAXB提供了一种将Java对象和XML进行自动转换的方式,使得数据交换变得简单。通过注解或者绑定文件,可以定义Java类和XML元素之间的映射关系。`javax.xml.bind....

Global site tag (gtag.js) - Google Analytics