xml转对象1

Unmarshaller 类使客户端应用程序能够将 XML 数据转换为 Java 内容对象树。

备注:marshal(序列化、排列、整理)

Marshaller 类使客户端应用程序能够将 Java 内容树转换回 XML 数据。

Java代码  

  1. package hb.jaxb;
  2. public class Classroom {
  3. private int id;
  4. private String name;
  5. private int grade;
  6. public int getId() {
  7. return id;
  8. }
  9. public void setId(int id) {
  10. this.id = id;
  11. }
  12. public String getName() {
  13. return name;
  14. }
  15. public void setName(String name) {
  16. this.name = name;
  17. }
  18. public int getGrade() {
  19. return grade;
  20. }
  21. public void setGrade(int grade) {
  22. this.grade = grade;
  23. }
  24. public Classroom(int id, String name, int grade) {
  25. super();
  26. this.id = id;
  27. this.name = name;
  28. this.grade = grade;
  29. }
  30. public Classroom() {
  31. super();
  32. }
  33. }

Java代码  

  1. package hb.jaxb;
  2. import javax.xml.bind.annotation.XmlRootElement;
  3. @XmlRootElement
  4. public class Student {
  5. private int id;
  6. private String name;
  7. private int age;
  8. private Classroom classroom;
  9. public int getId() {
  10. return id;
  11. }
  12. public void setId(int id) {
  13. this.id = id;
  14. }
  15. public String getName() {
  16. return name;
  17. }
  18. public void setName(String name) {
  19. this.name = name;
  20. }
  21. public int getAge() {
  22. return age;
  23. }
  24. public void setAge(int age) {
  25. this.age = age;
  26. }
  27. public Classroom getClassroom() {
  28. return classroom;
  29. }
  30. public void setClassroom(Classroom classroom) {
  31. this.classroom = classroom;
  32. }
  33. public Student(int id, String name, int age, Classroom classroom) {
  34. super();
  35. this.id = id;
  36. this.name = name;
  37. this.age = age;
  38. this.classroom = classroom;
  39. }
  40. //无参够着函数一定需要,否则JXBContext无法正常解析。
  41. public Student() {
  42. super();
  43. }
  44. }

注意:

1、需要转换的model对象一定要添加@XmlRootElement注解,其里面的其他对象则不需要

2、需要转换的model对象一定要有不带参数的构造方法,包括该对象里面引用的对象。

Java代码  

  1. package hb.jaxb;
  2. import java.io.StringReader;
  3. import javax.xml.bind.JAXBContext;
  4. import javax.xml.bind.JAXBException;
  5. import javax.xml.bind.Marshaller;
  6. import javax.xml.bind.Unmarshaller;
  7. import org.junit.Test;
  8. public class TestJaxb {
  9. @Test
  10. public void beanToXML() {
  11. Classroom classroom = new Classroom(1, "软件工程", 4);
  12. Student student = new Student(101, "张三", 22, classroom);
  13. try {
  14. JAXBContext context = JAXBContext.newInstance(Student.class);
  15. Marshaller marshaller = context.createMarshaller();
  16. marshaller.marshal(student, System.out);
  17. } catch (JAXBException e) {
  18. e.printStackTrace();
  19. }
  20. }
  21. @Test
  22. public void XMLStringToBean(){
  23. String xmlStr = "<?xml version=\"1.0 \" encoding=\"UTF-8\" standalone=\"yes\"?><student><age> 22</age><classroom><grade>4< /grade><id>1</id><name>软件工程</name>< /classroom><id>101</id><name>张三</name>< /student>";
  24. try {
  25. JAXBContext context = JAXBContext.newInstance(Student.class);
  26. Unmarshaller unmarshaller = context.createUnmarshaller();
  27. Student student = (Student)unmarshaller.unmarshal(new StringReader(xmlStr));
  28. System.out.println(student.getAge());
  29. System.out.println(student.getClassroom().getName());
  30. } catch (JAXBException e) {
  31. e.printStackTrace();
  32. }
  33. }
  34. }

JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到 XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用程序中能方便地结合XML数据和处理函数。

JAXBContext 类提供到 JAXB API 的客户端入口点。它提供了管理实现 JAXB 绑定框架操作所需的 XML/Java 绑定信息的抽象,这些操作包括:解组、编组和验证。

时间: 2024-08-14 22:31:13

xml转对象1的相关文章

Javascript 解析字符串生成 XML DOM 对象。

Javascript 接收字符串生成 XML DOM 对象.实测对 Firefox .IE6 有效.可用于解析 ajax 的服务器响应结果,也可用于解析自定义字符串.?1. [代码]函数   ppt模版  /** * Parses DOM from XML text.<br /> *  * @author Typhoon.Free.Wolf * @version 2014-02-28_15-51 * @param blDebugFlag *      - Debug flag: true, f

C#写入对象到XML/从XML读取对象

1.将一个sentenceresult对象写入xml,并保存 private void writeToXml(sentenceresult sr) { System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(typeof(sentenceresult)); var path = Environment.GetFolderPath(Environment.SpecialFo

XML和对象属性互转的基类

本人做了一个XML和对象属性互转的基类,现在放上来有兴趣拿去看一下,用法很简单,声明一个BaseConversion的子类,该子类与你想转换的对象相对应,然后覆盖基类的两个虚方法,然后在里面写元素与对象属性的转换即可以,废话少说了,还是看代码了,例子也懒得去写了,相信不会很难看懂的: unit XMLConversion; {*******************************************  * brief: XML和对象属性的转换  * autor: linzhenqun

JAXB解析XML为对象

JAXB支持注解将XML转化为对象,具体看一个简单的例子: <?xml version="1.0" encoding="utf-8"?> <Api> <algos> <!-- 算法类型 --> <algo name="YYFY" text="运营费用"> </algo> </algos> </Api> XML对应的pojo对象: p

c#xml序列化对象,xml标记都缩写了

最近最后一个接口,他们的格式很严格必须是如下格式 <message> <age>20</age> <name>张三</name> </message> 但是我xml序列化对象之后得到的结果如下 <message> <age/> <name></name> </message> 到网上搜索了将近一个半小时也没找到解决方案,最后试想如果给他赋值一个空字符会怎样,结果就如愿解决了上

js ajax 传送xml dom对象到服务器

客户端代码 1 <script> 2 var isie = true; 3 var xmlhttp = null; 4 function createXMLHTTP() {//创建XMLXMLHttpRequest对象 5 if (xmlhttp == null) { 6 if (window.XMLHttpRequest) { 7 xmlhttp = new XMLHttpRequest(); 8 } 9 else { 10 xmlhttp = new ActiveXObject("

XML转换为对象操作类详解

//XML转换为对象操作类 //一,XML与Object转换类 using System.IO; using System.Runtime.Serialization.Formatters.Binary; using System.Text; using System.Xml; using System.Xml.Serialization; namespace WebApplication1 { public sealed class XMLSerilizable { /// <summary>

利用Java反射机制完成XML到对象的解析

对于一些小批量的数据,如果采用数据库来存取的话,未免有点大题小作,使用XML文件是个不错的方法,尤其是在一些Web应用中,经常需要缓存一部分数据,如果将这些数据形成XML文件,解析后放入一个Hashtable,那就能大大加快访问的速度. 由于工作的需要,写了一个解析工具,将XML解析成相应的对象列表.以下是源代码,希望对大家有所帮助,更希望大家帮我来改进这个工具. package com.sp.util; /* * author:hingwu * email:[email protected]

asp.net 对象转XML,XML转对象

//对象转XML public static string ObjToXml(object obj) { using (MemoryStream Stream = new MemoryStream()) { XmlSerializer xml = new XmlSerializer(obj.GetType()); xml.Serialize(Stream, obj); Stream.Position = 0; StreamReader sr = new StreamReader(Stream);

C# xml与对象相互转换

例如: 1.对象转xml(对象序列化为xml) string strImage= XmlSerializeHelper.Serialize<List<ImageSingle>>(imageList): 2.xml转对象(反序列化) Image bojimag= XmlSerializeHelper.DeSerialize<Image>(strimage); 该序列化处理类如下: using System; using System.Collections.Generic