xml转json笔记(xstream)

场景

回传报文,原来是xml格式的,后来有业务系统强制要求接受json。
那么两种都要兼容,所以需要xml转json。

方案

常规的dom api去解析。 这个肯定是可以实现的,但是比较麻烦。
自己写个xml转json的类,相对还好控制。
几经周折,发现xstream看起来比较简单。

xstream是比较强大的,既支持java代码拼接,也支持注解。还支持自定义转换器。

xstream例子

maven依赖
<dependency>
	<groupId>com.thoughtworks.xstream</groupId>
	<artifactId>xstream</artifactId>
	<version>1.4.4</version>
</dependency>
java代码

主代码:

 XStream xstream = new XStream();
 xstream.processAnnotations(Entity.class);
 Object o = xstream.fromXML(xml);
 String json = JSON.toJSONString(o);

主体类代码:

@XStreamAlias("request")
@Data
public class Entity {

    @XStreamAsAttribute()
    private String userAccount;

    @XStreamAsAttribute()
    private String password;

    @XStreamImplicit(itemFieldName="hmlst") // 这个是list
    private List<HmEntity> hmlst;
}

子实体类代码:

@Data
public class HmEntity {

    @XStreamAsAttribute
    private String fpqqlsh;
}

其他

xstream官网文档地址

http://x-stream.github.io/tutorial.html

比较难处理的场景

类似这样的报文用注解怎么也弄不对。
如果实在不行,用json实体类来实现,生成正确的json报文即可。

<request>
	<lst>
	<user><name>zhangsan</name></user>
	<user><name>zhangsan</name></user>
	</lst>
</request>

maven依赖

<dependency>
	<groupId>com.thoughtworks.xstream</groupId>
	<artifactId>xstream</artifactId>
	<version>1.4.4</version>
</dependency>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值