浅谈java封装xml报文,XML报文转JAVA对象-JAVA对象转XML报文
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报文相关推荐
- 浅谈对于封装、继承与多态的理解(Java)
目录 封装 继承 父类成员的访问 如何在子类中访问父类同名的成员 子类构造方法 代码块在继承上的执行顺序 多态 多态的实现条件 重写 多态的优缺点 面向对象程序的三大特征:封装继承和多态. 封装 · ...
- 浅谈Retrofit封装-让框架更加简洁易用
尊重他人的劳动成果,转载请标明出处:http://blog.csdn.net/gengqiquan/article/details/52329259, 本文出自:[gengqiquan的博客] 不知不 ...
- android rxbus2.0封装,浅谈Rxbus封装(一)
最近再看一个项目,但是那个项目里面的Rxjava是1.x版本的,由于最近又有一个项目要开始了,在封装各种基类,所以我准备将项目中的Rxbus用Rxjava2.x来修改一下继续用,由于2.x的Rxjav ...
- java封装继承多态的理解_深入理解Java封装、继承、多态
一:封装 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问,常见的实现方式就是:getter.setter. 封装遵循了"开闭原则&qu ...
- ajax感受,有什么缺点,浅谈ajax的优点与缺点
AJAX (Asynchronous Javascript and XML) 是一种交互式动态web应用开发技术,该技术能提供富用户体验. 完全的AJAX应用给人以桌面应用的感觉.正如其他任何技术,A ...
- 34篇Java基础总结博客陪博主入门Java
博客内容: 1.JDK,JRE和JVM三者的关系以及java的运行机制,环境变量,三大版本,特点 2.Java原码.反码.补码 3.Java位运算实例详解--(&).(|).(~).(^).( ...
- 浅谈XMl解析的几种方式
1.XMl 简介: "可扩展标记语言"(XML) 提供一种描述结构化数据的方法.与主要用于控制数据的显示和外观的 HTML 标记不同,XML 标记用于定义数据本身的结构和数据类型 ...
- 一起谈.NET技术,浅谈如何使用.NET存储XML数据
XML Bulk Load和Updategrams,这两种客户端技术使用带有注解的大纲指定XML文档内容和数据库的表之间的映射:OpenXML是一种服务器端技术,它允许你在XML文档上定义关系视图,有 ...
- iOS XML浅谈
XML简介 XML出身名门,W3C制定,微软和IBM曾经共同大力推荐过的数据格式. XML指可扩展标记语言(Extensible Markup Language). 被设计用来传输和存储数据.在以前是 ...
- java dao service实例_浅谈Action+Service +Dao 功能
1. Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. D ...
最新文章
- GlusterFS-FUSE
- 与客家土楼的约会(增城-河源)
- pandas高效读取大文件(csv)方法之-parquet
- oracle无监听程序的解决方法(PLSQL)Oracle ORA12514 监听程序当前无法识别连接描述符中请求的服务...
- mysql查看数据类型命令_mysql菜鸟指南(增删查改、数据类型、常用命令)
- python基础有哪些内容_Python基础练习
- iOS- 如何改变section header
- 将serversocket 写在按钮事件中连接不上_Java服务器的模型—TCP连接/流量优化
- 为什么大部分的C/C++码农都成不了高级工程师?真实原因是缺少核心能力!
- android 获取芯片版本_谷歌:未来Android手机将获得4年软件更新
- struts2中action之间的一种跳转
- Pytorch torch.manual_seed()的简单用法
- ndoejs后台查询数据库返回的值-进行解析
- 百度文库免积分免费下载工具的原理与实现
- WEB电商项目广告管理与缓存解决方案
- JavaScript基础练习题(一)
- ShareSDK iOS端微信如何获取authcode值
- 腾讯要建超级大脑,用三张网实现AI in All万物互联
- 解剖直播功能解剖直播观众
- 相位噪声基础及测试原理和方法
热门文章
- vivado和modelsim联合仿真实现占空比1:15的分频
- 贺利坚老师汇编课程60笔记:逻辑移位指令shl和shr
- MySQL命令窗口下中文显示乱码的解决过程
- Go语言的基准测试简单示例
- 浅谈C中的malloc和free\\感谢lj_860603,工作了,没时间验证了,觉得挺好的,转载了...
- [转载] c++与python 数据类型对应
- [转载] python numpy--矩阵的通用函数
- [转载] python 常用类库!
- 我的ActiveRecord学习之路(一)
- @Controller深入详解