xml转json和实体类的两种方式
本文为博主原创,未经允许不得转载:
xml在http通信中具有较高的安全性和传输速度,所以应用比较广泛,
在项目中往往需要对xml,json和实体类进行相互转换,在这里总结一下自己所用到的一些方法:
一. 使用XMLSerializer 将xml转为json格式
1.引入jar包:
<dependency><groupId>com.thoughtworks.xstream</groupId><artifactId>xstream</artifactId></dependency><dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><classifier>jdk15</classifier></dependency>
使用示例:
public static void main(String[] args) {String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+"<domain xmlns:cloudcdn=\"http://cloud.chinanetcenter.com/extension/xhtml\">"+ "<domain-id>fdg68</domain-id>"+ "<domain-name>dfsg.com</domain-name>"+ "<service-type>web-https</service-type>"+ "<service-areas/>"+ "<cname>fdsgsdg.com</cname>"+ "<status>Deployed</status>"+ "<comment/>"+ "</domain>";XMLSerializer cacheXmlSerializer = new XMLSerializer();JSON referJsonResult = cacheXmlSerializer.read(xml);JSONObject referJson = JSONObject.parseObject(referJsonResult.toString());System.out.println(referJson); //运行打印的结果为://{"domain-name":"dfsg.com","domain-id":"fdg68","service-type":"web-https","cname":"fdsgsdg.com","@xmlns:cloudcdn":"http://cloud.chinanetcenter.com/extension/xhtml","comment":[],"service-areas":[],"status":"Deployed"}}
二.通过XStream将xml转化为实体类,
通过第一种方式也可以将xml解析为实体类,步骤为,先将xml转为json,然后将json转为实体类,
这里介绍的方式是通过XStream将xml转为实体类:
XStream是个很强大的工具,能将java对象和xml之间相互转化。xstream不在意java类中成员变量是私有还是公有,
也不在乎是否有默认构造函数。它调用方式也非常简单:从xml对象转化为java对象,使用fromXML()方法;
从java对象序列化为xml,toXML()即可,很方便。
xstream也支持注解方式,注解方式实现和非注解方式实现的区别在于是否单独解析别名,
如果是注解的方式,可以直接使用注解的属性将xml字段与实体类字段进行映射。
具体可参考:https://blog.csdn.net/dc282614966/article/details/80970750
此处展示注解式转换的实例:
@XStreamAlias("message") 别名注解 ,作用就是将属性按照别名输出。
@XStreamAlias("User") public class User {@XStreamAlias("name")private String name;@XStreamAlias("age")private String age;@XStreamAlias("SEX")private String sex;public User(String name, String age, String sex) {super();this.name = name;this.age = age;this.sex = sex;}@Overridepublic String toString() {return "User [name=" + name + ", age=" + age + ", sex=" + sex + "]";} }
1.xml转换实体类的实现方式:
public static void main(String[] args) {String xml="<User>\n"+" <name>peter</name> \n"+" <age>13</age> \n"+" <SEX>男</SEX> \n"+" </User>";XStreamEx xStream = new XStreamEx();xStream.processAnnotations(User.class);User user = (User) xStream.fromXML(xml);}
2.将实体类转xml的方式
User user = new User();user.setName("test");// 转换XStream xStream = new XStream();// 通过注解方式的,一定要有这句话 xStream.processAnnotations(user.getClass());String xmlCfg = xStream.toXML(user);
转载于:https://www.cnblogs.com/zjdxr-up/p/10665414.html
xml转json和实体类的两种方式相关推荐
- 关于ssh框架中hibernate扫描实体类的两种方法annotatedClasses和packagesToScan
[Hibernate]spring整合hibernate扫描实体类的两种方法annotatedClasses和packagesToScan的异同
- 利用反射机制创建新类的两种方式及比较
[0]README 0.1) 本文描述+源代码均 转自 http://blog.csdn.net/fenglibing/article/details/4531033 , 旨在深入理解 如何利用反射机 ...
- Dynamics CRM2013/2015 检索实体属性的两种方式
昨天有朋友问起如何查询一个字段属性是否存在于某个实体中,一般这个问题我们会采取最直观的查询方式即MetadataBrowser,该工具是一个zip解决方案包在SDK中的如下目录内"\SDK\ ...
- json解析详解 java_Java解析Json数据的两种方式详解
JSON数据解析的有点在于他的体积小,在网络上传输的时候可以更省流量,所以使用越来越广泛,下面介绍使用JsonObject和JsonArray的两种方式解析Json数据. 使用以上两种方式解析json ...
- java 产生随机数的两种方式,Java产生随机数的几种方式
一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在 ...
- JSON的正确格式及JSON与实体类相互转换
json是一种与语言无关的数据交换的格式,使用Json的格式与解析方便的可以表示一个对象信息,json有两种格式:①对象格式:{"key1":obj,"key2" ...
- JPA 不在 persistence.xml 文件中配置每个Entity实体类的2种解决办法
原文地址:http://www.cnblogs.com/taven/p/3351841.html JPA 不在 persistence.xml 文件中配置每个Entity实体类的2种解决办法 在Spr ...
- idea中json转实体类
之前没觉得写个json的实体类有多麻烦,直到- 然后我就不敢再手写了- 这还只是一部分,所以以后千万别做这种无用功,效率是王道. 正文: 我们需要在idea中安装GsonFormat插件,上图 在这里 ...
- 如何把实体类对象转化为json(json转实体类对象)
使用fastjson框架解决实体类转json的问题(实体类要序列化哦,如 实体类 implements Serializable ) 1.序列化(实体类转json,text为json数据,user为 ...
最新文章
- TinkerNode NB-IoT物联网开发板(NB-IoT专栏—拓展篇3)
- 3.Struts2的输入验证
- java 命令读取参数_如何读取/处理命令行参数?
- 周期置换加密算法用c语言实现,古典密码实验报告.doc
- Python不使用scrapy框架而编写的网页爬虫程序
- 【WPF】关于XAML Parse Exception,无法创建XXX的实例异常的一点小心得
- AC日记——幸运号码 51nod 1043
- 【MATLAB】MATLAB应用手册(1):高等数学的MATLAB应用
- 苹果手机屏幕镜像_微软应用上线屏幕镜像功能:可在PC端控制安卓手机
- 非阻塞connect用法
- 网络爬虫-re库-正则表达式
- Jenkins整合slaver完整搭建
- 关于谷歌浏览器显示隐私设置错误的解决方案
- java+上传文件夹
- Springboot就业招聘信息系统x8y1g计算机毕业设计-课程设计-期末作业-毕设程序代做
- 小米max3支持html吗,小米Max3这款手机是否有OTG功能,支持OTG鼠标和U盘吗?
- 郑军学长-解决SVN访问慢[密]
- 大数据:千万个“路人甲”的价值逻辑
- QTableWidget设置表头筛选(含鼠标点击事件过滤)
- 基于MATLAB的图像去雾系统