一、使用org.json中的 XML.toJSONObject(String xml)可实现需求
在转成json格式的字符串之后,可通过阿里的fastjson进行取值,如下:
gradle依赖 :compile group: 'org.json', name: 'json', version: '20170516'
compile group: 'com.alibaba', name: 'fastjson', version: '1.2.31'
org.json.JSONObject xmlJSONObj = XML.toJSONObject(str);com.alibaba.fastjson.JSONObject jsonObject = (JSONObject) JSON.parse(xmlJSONObj.toString());
二、使用net.sf.json-lib中的XMLSerializer的read(String xml)
gradle依赖:compile group: 'net.sf.json-lib', name: 'json-lib', version: '2.4', classifier:'jdk15'
compile group: 'xom', name: 'xom', version: '1.2.5'
compile group: 'com.alibaba', name: 'fastjson', version: '1.2.31'
XMLSerializer xmlSerializer = new XMLSerializer();
String result = xmlSerializer.read(xml).toString();
取值与方法一一致。
需要注意的是,方法一将xml的字符串格式转出json格式的时候,如果其中有小数形式的字符串,如“50.0000”,会默认将小数点及小数点后的数忽略,这在一些需要进行md5加密的业务中会影响程序正常运行的,可以采用方法二!