回传报文,原来是xml格式的,后来有业务系统强制要求接受json。
那么两种都要兼容,所以需要xml转json。
常规的dom api去解析。 这个肯定是可以实现的,但是比较麻烦。
自己写个xml转json的类,相对还好控制。
几经周折,发现xstream看起来比较简单。
xstream是比较强大的,既支持java代码拼接,也支持注解。还支持自定义转换器。
<dependency><groupId>com.thoughtworks.xstream</groupId><artifactId>xstream</artifactId><version>1.4.4</version>
</dependency>
主代码:
XStream xstream = new XStream();xstream.processAnnotations(Entity.class);Object o = xstream.fromXML(xml);String json = JSONString(o);
主体类代码:
@XStreamAlias("request")
@Data
public class Entity {@XStreamAsAttribute()private String userAccount;@XStreamAsAttribute()private String password;@XStreamImplicit(itemFieldName="hmlst") // 这个是listprivate List<HmEntity> hmlst;
}
子实体类代码:
@Data
public class HmEntity {@XStreamAsAttributeprivate String fpqqlsh;
}
.html
类似这样的报文用注解怎么也弄不对。
如果实在不行,用json实体类来实现,生成正确的json报文即可。
<request><lst><user><name>zhangsan</name></user><user><name>zhangsan</name></user></lst>
</request>
<dependency><groupId>com.thoughtworks.xstream</groupId><artifactId>xstream</artifactId><version>1.4.4</version>
</dependency>
本文发布于:2024-02-02 04:17:14,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170681863541299.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |