在JAVA中xml与json数据互相转换

package com.sgcc.platform.common.utils;

import static java.lang.String.format;

import java.util.Map;

import org.json.JSONObject;
import org.json.XML; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.JacksonXmlModule;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.sgcc.platform.common.exceptions.ConvertException; /**
* json,xml互相转换
* @author libing
*
*/
public class JsonXmlUtil {
private static JacksonXmlModule module = new JacksonXmlModule();
private static ObjectMapper objectMapper = new ObjectMapper();
private static XmlMapper xmlMapper = new XmlMapper(module);
static{
//去掉xml顶部内容<?xml version="1.0" encoding="UTF-8" ?>
module.setDefaultUseWrapper(false);
} /**
* xml字符串转换成net.sf.json.JSONObject对象
* @param xmlStr
* @return
*/
public static JSONObject xml2jsonObj(String xmlStr){
JSONObject jsonObject = XML.toJSONObject(xmlStr);
return jsonObject;
} /**
* xml字符串转换成json字符串
* @param xmlStr
* @return
*/
public static String xml2jsonStr(String xmlStr){
JSONObject jsonObject = XML.toJSONObject(xmlStr);
return jsonObject.toString();
} /**
* json字符串转换成xml字符串
* @param jsonStr
* @return
*/
public static String 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字符串
* @param mapData
* @return
*/
public static String map2xml(Map<String,Object> mapData){
Object repinfoJsonObj = JSONObject.wrap(mapData);
String jsonStr=repinfoJsonObj.toString();
String result=json2xml(jsonStr);
return result;
} // 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));
//
// }
}

最新文章

  1. SqlService过期的解决方案
  2. Oracle trunc()函数的用法
  3. 关闭dialog(lhgdialog)
  4. sql中对于case when...then...else...end的写法和理解
  5. MVC 多语言记录1 设置默认的ResourceType
  6. aspx网页相对布局
  7. GOOGLE影像地图
  8. django集成微博内容
  9. BZOJ 3110([Zjoi2013]K大数查询-区间第k大[段修改,在线]-树状数组套函数式线段树)
  10. android static达到Service与Activity于Handler沟通
  11. Masonry适配的简单使用
  12. Go语言教程5 if switch select
  13. NoFragment重大bug
  14. 第一把机械键盘 ikbc C-87
  15. 使用 nodeJs 开发微信公众号(获取access_token)
  16. spring BeanFactory VS FactoryBean
  17. Visual Basic 2017 操作Excel和word【1】持续更新……
  18. Swift 模型属性
  19. Ubuntu16.04 python import cv2
  20. Office2007打开文件提示“您尝试打开的文件xxx.xls的格式与文件扩展名指定的格式不一致”的解决办法

热门文章

  1. NMAP-高级用法
  2. 蓝牙核心技术概述(四):蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)(转载)
  3. 关于智能指针类型shared_ptr的计数问题
  4. 软件工程课堂作业(十一)——NABC分析
  5. C++ Mooc学习
  6. js 控制
  7. Linux面试题汇总答案(转)
  8. [计算机网络] 互联网协议栈(TCP/IP参考模型)各层的主要功能及相应协议
  9. Java接口成员变量
  10. linux 环境变量配置(node)