JAVA 实体类 Person.java

public class Person {

private int id;

private String username;

private String age;

private String address;

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 getAge() {

return age;

}

public void setAge(String age) {

this.age = age;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

//无参构造函数

public Person(){

super();

}

//有参构造函数

public Person(int id,String username,String age,String address){

this.id=id;

this.username=username;

this.age=age;

this.address=address;

}

}

第二个JAVA实体类,把上面声明的Person 实体作为一个变量存在

注意 @XmlRootElement 的注解的使用

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement

public class ObjectDemo {

private String name;

private String sex;

private Person person;

/**

* @return the person

*/

public Person getPerson() {

return person;

}

/**

* @param person the person to set

*/

public void setPerson(Person person) {

this.person = person;

}

/**

* @return the name

*/

public String getName() {

return name;

}

/**

* @param name the name to set

*/

public void setName(String name) {

this.name = name;

}

/**

* @return the sex

*/

public String getSex() {

return sex;

}

/**

* @param sex the sex to set

*/

public void setSex(String sex) {

this.sex = sex;

}

//有参构造方法

public ObjectDemo(String name,String sex,Person person){

this.name=name;

this.sex=sex;

this.person=person;

}

//无参构造方法

public ObjectDemo(){

super();

}

}

测试方法

import java.io.StringReader;

import javax.xml.bind.JAXBContext;

import javax.xml.bind.JAXBException;

import javax.xml.bind.Marshaller;

import javax.xml.bind.Unmarshaller;

import org.junit.Test;

import com.demo.vo.ObjectDemo;

import com.demo.vo.Person;

public class XmlToObject {

@Test

public void XMLTobean() {

Person p = new Person(1, "小红", "10", "北京");

ObjectDemo ob = new ObjectDemo("小明", "11", p);

try {

JAXBContext context = JAXBContext.newInstance(ObjectDemo.class);

Marshaller marshaller = context.createMarshaller();

marshaller.marshal(ob, System.out);//这里的输出流直接输出了,也可以使用ByteArrayOutputStream();接收,toString()

} catch (JAXBException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

@Test

public void beanToXML() {

String xml="<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" +

"" +

"小明" +

"" +

"

北京

" +

"10" +

"1" +

"小红" +

"" +

"11" +

"";

try {

JAXBContext context = JAXBContext.newInstance(ObjectDemo.class);

Unmarshaller unmarshaller = context.createUnmarshaller();

ObjectDemo obj = (ObjectDemo)unmarshaller.unmarshal(new StringReader(xml));

System.out.println(obj.getName());

System.out.println(obj.getPerson().getAddress());

} catch (JAXBException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

浅谈java封装xml报文,XML报文转JAVA对象-JAVA对象转XML报文相关推荐

  1. 浅谈对于封装、继承与多态的理解(Java)

    目录 封装 继承 父类成员的访问 如何在子类中访问父类同名的成员 子类构造方法 代码块在继承上的执行顺序 多态 多态的实现条件 重写 多态的优缺点 面向对象程序的三大特征:封装继承和多态. 封装 · ...

  2. 浅谈Retrofit封装-让框架更加简洁易用

    尊重他人的劳动成果,转载请标明出处:http://blog.csdn.net/gengqiquan/article/details/52329259, 本文出自:[gengqiquan的博客] 不知不 ...

  3. android rxbus2.0封装,浅谈Rxbus封装(一)

    最近再看一个项目,但是那个项目里面的Rxjava是1.x版本的,由于最近又有一个项目要开始了,在封装各种基类,所以我准备将项目中的Rxbus用Rxjava2.x来修改一下继续用,由于2.x的Rxjav ...

  4. java封装继承多态的理解_深入理解Java封装、继承、多态

    一:封装 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问,常见的实现方式就是:getter.setter. 封装遵循了"开闭原则&qu ...

  5. ajax感受,有什么缺点,浅谈ajax的优点与缺点

    AJAX (Asynchronous Javascript and XML) 是一种交互式动态web应用开发技术,该技术能提供富用户体验. 完全的AJAX应用给人以桌面应用的感觉.正如其他任何技术,A ...

  6. 34篇Java基础总结博客陪博主入门Java

    博客内容: 1.JDK,JRE和JVM三者的关系以及java的运行机制,环境变量,三大版本,特点 2.Java原码.反码.补码 3.Java位运算实例详解--(&).(|).(~).(^).( ...

  7. 浅谈XMl解析的几种方式

    1.XMl  简介: "可扩展标记语言"(XML) 提供一种描述结构化数据的方法.与主要用于控制数据的显示和外观的 HTML 标记不同,XML 标记用于定义数据本身的结构和数据类型 ...

  8. 一起谈.NET技术,浅谈如何使用.NET存储XML数据

    XML Bulk Load和Updategrams,这两种客户端技术使用带有注解的大纲指定XML文档内容和数据库的表之间的映射:OpenXML是一种服务器端技术,它允许你在XML文档上定义关系视图,有 ...

  9. iOS XML浅谈

    XML简介 XML出身名门,W3C制定,微软和IBM曾经共同大力推荐过的数据格式. XML指可扩展标记语言(Extensible Markup Language). 被设计用来传输和存储数据.在以前是 ...

  10. java dao service实例_浅谈Action+Service +Dao 功能

    1. Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. D ...

最新文章

  1. GlusterFS-FUSE
  2. 与客家土楼的约会(增城-河源)
  3. pandas高效读取大文件(csv)方法之-parquet
  4. oracle无监听程序的解决方法(PLSQL)Oracle ORA12514 监听程序当前无法识别连接描述符中请求的服务...
  5. mysql查看数据类型命令_mysql菜鸟指南(增删查改、数据类型、常用命令)
  6. python基础有哪些内容_Python基础练习
  7. iOS- 如何改变section header
  8. 将serversocket 写在按钮事件中连接不上_Java服务器的模型—TCP连接/流量优化
  9. 为什么大部分的C/C++码农都成不了高级工程师?真实原因是缺少核心能力!
  10. android 获取芯片版本_谷歌:未来Android手机将获得4年软件更新
  11. struts2中action之间的一种跳转
  12. Pytorch torch.manual_seed()的简单用法
  13. ndoejs后台查询数据库返回的值-进行解析
  14. 百度文库免积分免费下载工具的原理与实现
  15. WEB电商项目广告管理与缓存解决方案
  16. JavaScript基础练习题(一)
  17. ShareSDK iOS端微信如何获取authcode值
  18. 腾讯要建超级大脑,用三张网实现AI in All万物互联
  19. 解剖直播功能解剖直播观众
  20. 相位噪声基础及测试原理和方法

热门文章

  1. vivado和modelsim联合仿真实现占空比1:15的分频
  2. 贺利坚老师汇编课程60笔记:逻辑移位指令shl和shr
  3. MySQL命令窗口下中文显示乱码的解决过程
  4. Go语言的基准测试简单示例
  5. 浅谈C中的malloc和free\\感谢lj_860603,工作了,没时间验证了,觉得挺好的,转载了...
  6. [转载] c++与python 数据类型对应
  7. [转载] python numpy--矩阵的通用函数
  8. [转载] python 常用类库!
  9. 我的ActiveRecord学习之路(一)
  10. @Controller深入详解