- 浏览: 7866224 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
在JAXB中,其实不用annotation也是可以的,虽然比较麻烦,下面是一个例子:
另外一个POJO
然后下面的是一个XML文件,先展示的是将xml文件反序列化为CUSTOMER类,
主程序如下:
可以看到在Customer customer = je1.getValue();
这句之前,就是读入了xml文件,然后进行unmarshaller的操作,之后得到的是一个
JAXBElement的对象实例,然后通过getValue得到其Customer对象实例。然后
接下来的代码是将customer再重新序列化为xml了。
package blog.defaults; import java.util.List; public class Customer { private String firstName; private String lastName; private List<PhoneNumber> phoneNumbers; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public List<PhoneNumber> getPhoneNumbers() { return phoneNumbers; } public void setPhoneNumbers(List<PhoneNumber> phoneNumbers) { this.phoneNumbers = phoneNumbers; } }
另外一个POJO
package blog.defaults; public class PhoneNumber { private String foo; private String bar; public String getType() { return foo; } public void setType(String type) { this.foo = type; } public String getNumber() { return bar; } public void setNumber(String number) { this.bar = number; } }
然后下面的是一个XML文件,先展示的是将xml文件反序列化为CUSTOMER类,
<?xml version="1.0" encoding="UTF-8"?> <customer> <firstName>Jane</firstName> <lastName>Doe</lastName> <phoneNumbers> <number>555-1111</number> <type>work</type> </phoneNumbers> <phoneNumbers> <number>555-2222</number> <type>home</type> </phoneNumbers> </customer>
主程序如下:
package blog.defaults; import javax.xml.bind.*; import javax.xml.namespace.QName; import javax.xml.transform.stream.StreamSource; public class Demo { public static void main(String[] args) throws Exception { JAXBContext jc = JAXBContext.newInstance(Customer.class); StreamSource xml = new StreamSource("src/blog/defaults/input.xml"); Unmarshaller unmarshaller = jc.createUnmarshaller(); JAXBElement<Customer> je1 = unmarshaller.unmarshal(xml, Customer.class); Customer customer = je1.getValue(); JAXBElement<Customer> je2 = new JAXBElement<Customer>(new QName("customer"), Customer.class, customer); Marshaller marshaller = jc.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.marshal(je2, System.out); } }
可以看到在Customer customer = je1.getValue();
这句之前,就是读入了xml文件,然后进行unmarshaller的操作,之后得到的是一个
JAXBElement的对象实例,然后通过getValue得到其Customer对象实例。然后
接下来的代码是将customer再重新序列化为xml了。
评论
2 楼
yonge812
2013-08-27
请问如果对象中的属性名称与xml的节点不一致,应该如何转换?
1 楼
yidao620c
2012-08-06
其实这种简单的不加annotation的xml序列化和反序列化可以用xstream,复杂的采用jaxb。
发表评论
-
复习:强迫线程顺序执行方式
2019-01-03 23:42 1495方法1: 三个线程,t1,t2,t3,如果一定要按顺序执行, ... -
(转)不错的前后端处理异常的方法
2019-01-02 23:16 1976前言 在 Web 开发中, 我们经常会需要处理各种异常, 这是 ... -
info q的极客时间大咖说等资料下载
2018-08-15 08:40 3420info q的极客时间大咖说等资料下载,还有不少思维导图 链 ... -
CXF 客户端超时时间设置(非Spring配置方式)
2018-07-03 22:38 2195import org.apache.cxf.endpoint. ... -
(转)synchronized关键字画像:正确打开方式
2018-06-14 09:25 456https://mp.weixin.qq.com/s/b3Sx ... -
CountDownLatch的例子
2018-06-13 14:10 639public class StatsDemo { ... -
两道面试题,带你解析Java类加载机制
2018-06-12 16:29 563https://mp.weixin.qq.com/s/YTa0 ... -
Spring中获取request的几种方法,及其线程安全性分析
2018-06-11 09:03 631https://mp.weixin.qq.com/s/KeFJ ... -
内部类小结
2018-06-06 10:25 407https://mp.weixin.qq.com/s/hErv ... -
JVM虚拟机小结1
2018-06-04 20:43 4711 jps -l //列出详细的类名和进程ID 2)jps ... -
windows下自带命令行工具查看CPU资源情况等
2018-06-04 12:53 3049微软提供了不少命令行 ... -
(收藏)深入分析Java的序列化与反序列化
2018-05-30 15:21 569https://mp.weixin.qq.com/s/T2Bn ... -
apache common包中的序列化工具
2018-05-30 09:10 1791什么是序列化 我们的 ... -
JAVA8 JVM的变化: 元空间(Metaspace)
2018-05-24 22:30 921本文将会分享至今为至我收集的关于永久代(Permanent G ... -
(转)服务器性能指标(一)——负载(Load)分析及问题排查
2018-05-21 21:03 1277原创: Hollis Hollis 负载 ... -
(转)对象复用
2018-05-20 15:27 816public class Student { priv ... -
mapreduce中入门中要注意的几点
2018-05-06 08:59 628在 mapreduce中,比如有如下的词: I love b ... -
HDFS的基本操作
2018-05-02 21:47 891-mkdir 在HDFS创建目录 ... -
一个不错的开源工具类,专门用来解析日志头部的,好用
2018-05-02 20:00 716一个不错的开源工具类,专门用来解析日志头部的,好用。 http ... -
介绍个不错的RESTFUL MOCK的工具wiremock
2018-04-27 21:02 1864介绍个不错的RESTFUL MOCK的工具wiremock,地 ...
相关推荐
JAXB框架,作用是对象和XML之间相互转化,本文档包含代码示例,介绍对象和XML如果使用JAXB相互转化 在代码里面备注了具体使用的文字说明
Jaxb annotation 使用 Jaxb annotation初步使用
JAXB的使用JAXB的使用JAXB的使用JAXB的使用
我刚写好的 一个简单的小程序 动行里面的read文件 是在idea 中用jaxb 读xml中数据
如何更好地jaxb使用如何更好地jaxb使用如何更好地jaxb使用如何更好地jaxb使用
很好的jaxb入门示例 把所有注解标签都试一遍基本就OK了
JAXB主要用来实现对象和XML之间的序列化和反序列化,关于JAXB的介绍就不多说了,这里主要总结下基本使用方法和一些注意事项
Jaxb webservice java调用客户端代码示例
最新的JAXB API手册! JAXB_2.2_API.chm
calcviz 项目是如何使用 jaxb-visitor 插件的示例。 该模式定义了简单的二元和一元数学运算,并支持构建表达式图。 提供了示例访问者以演示一些不同的操作。 上图显示了使用项目中提供的架构的简单图形。 这是一个...
解释并解决java开发中使用jaxb解析或组装xml遇到乱码的问题。
无需安装,解压后即可。jaxb-api.jar,jaxb-xjc.jar,jaxb-impl.jar,activation.jar等相关jar包在lib文件夹下。
本人在公司用到了jaxb技术,这是在公司的学习文档,今天跟高兴个大家分享。
在使用webservice,mule esb等需要jaxb的项目里经常会出现 JAXB 2.0 API is being loaded from the bootstrap classloader这个错误,按照打出的信息Use the endorsed directory mechanism to place jaxb-api.jar in ...
java -jar JAXB2_20060607.jar On Windows, you can just double-click the jar file to execute. Release Notes Browse the release notes online, including what's new. Technical Support Please subscribe to...
1. 什么是JAXB? Java Architecture for XML Binding (JAXB) 是一个业界的标准,是一项可以根据XML
有关Maven项目中缺少jaxb-api的异常报错解决,jaxb-api-2.3.0.jar
如何使用JAXB框架定制Web服务行为.doc
J2EE中解析XML文件的技术。最初JAXB是JavaEE的一部分,在JDK6.0中,sun将其移到了JavaSE中。在JDK6.0中,JAXB的版本中2.0,比起1.0版本,JAXB2.0基于Annotation来标识要作绑定的类和属性,从而缩减了开发工作量。
使用jaxb生成XML例子,含有例子和注解解析