java 不用工具转json_JAVA工具方法 —— JSON转XML 和 XML转JSON

这阵子一直在做一个三方支付,数据传递用的都是xml 但是在项目里都是用的json,没办法 研究了下json和xml互转的方法 这里做下记录。

1. json转xml 相对简单些 用递归即可实现

/**

* Map or JSON 转换成Xml

*

* fastJSON实现了Map 所以此处直接传json 也可以的

*/

public static String mapToXMLTest2(Map map, StringBuffer sb) {

Set set = map.keySet();

for (Iterator it = set.iterator(); it.hasNext(); ) {

String key = (String) it.next();

Object value = map.get(key);

if (null == value)

value = "";

if (value.getClass().getName().equals("java.util.ArrayList")) {

LinkedList list = (LinkedList) map.get(key);

sb.append("");

for (int i = 0; i < list.size(); i++) {

HashMap hm = (HashMap) list.get(i);

mapToXMLTest2(hm, sb);

}

sb.append("" + key + ">");

} else {

if (value instanceof HashMap) {

sb.append("");

mapToXMLTest2((HashMap) value, sb);

sb.append("" + key + ">");

} else {

sb.append("" + value + "" + key + ">");

}

}

}

return sb.toString();

}

2. xml字符串 转JSON

xml转JON 需要借助 jackSon的 fastxml包来实现

com.fasterxml

jackson-xml-databind

0.6.2

/**

* xml 转json

*/

public static JSONObject convertXmlToJson(String xml) throws IOException {

XmlMapper xmlMapper = new XmlMapper();

JSONObject param = xmlMapper.readValue(xml, JSONObject.class);

return param;

}

利用XmlMapper这个类, 简单两段代码就可以搞定 但是该方法有个缺点, 如果你的xml字符串转换的内容里 有数组的情况下, 直接这样转是不行的。 这种情况就要自己建立相应的实体类来做接收。 注:实体要有相应的getset方法, 并要保证和xml中的字段名一一对应。

转载至链接:https://my.oschina.net/danjuan/blog/1831113

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值