packagecom.sgcc.platform.common.utils;import staticjava.lang.String.format;importjava.util.Map;importorg.json.JSONObject;importorg.json.XML;importcom.fasterxml.jackson.databind.JsonNode;importcom.fasterxml.jackson.databind.ObjectMapper;importcom.fasterxml.jackson.dataformat.xml.JacksonXmlModule;importcom.fasterxml.jackson.dataformat.xml.XmlMapper;importcom.sgcc.platform.common.exceptions.ConvertException;/*** json,xml互相转换
*@authorlibing
**/
public classJsonXmlUtil {private static JacksonXmlModule module = newJacksonXmlModule();private static ObjectMapper objectMapper = newObjectMapper();private static XmlMapper xmlMapper = newXmlMapper(module);static{//去掉xml顶部内容<?xml version="1.0" encoding="UTF-8" ?>
module.setDefaultUseWrapper(false);
}/*** xml字符串转换成net.sf.json.JSONObject对象
*@paramxmlStr
*@return
*/
public staticJSONObject xml2jsonObj(String xmlStr){
JSONObject jsonObject=XML.toJSONObject(xmlStr);returnjsonObject;
}/*** xml字符串转换成json字符串
*@paramxmlStr
*@return
*/
public staticString xml2jsonStr(String xmlStr){
JSONObject jsonObject=XML.toJSONObject(xmlStr);returnjsonObject.toString();
}/*** json字符串转换成xml字符串
*@paramjsonStr
*@return
*/
public staticString json2xml(String jsonStr){try{
JsonNode root=objectMapper.readTree(jsonStr);
String result=xmlMapper.writeValueAsString(root);return result.replaceAll("?ObjectNode>","");
}catch(Exception e) {throw new ConvertException(format("incorrect JSON data:/n%s",jsonStr));
}
}/*** map数据转换成xml字符串
*@parammapData
*@return
*/
public static String map2xml(MapmapData){
Object repinfoJsonObj=JSONObject.wrap(mapData);
String jsonStr=repinfoJsonObj.toString();
String result=json2xml(jsonStr);returnresult;
}//public static void main(String[] args) throws Exception {//String ss="{\"REPINFO\":{\"SITEDATA\":[{\"SITE_NAME\":\"有没 \",\"REMARK\":null,\"MEASCODE\":35,\"SITE_ID\":2},{\"SITE_NAME\":\"城\",\"REMARK\":null,\"MEASCODE\":35,\"SITE_ID\":3}]}}";//System.out.println(json2xml(ss));//
//}
}