`
SwordShadow
  • 浏览: 271018 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

XML 、 MAP 与 JSON 格式的转换

    博客分类:
  • java
阅读更多

使用的  第三方的 jar包 为 dom4j,json 包使用的是 fastjson

 

XML 转 Map

 

	public static Map commonXmlToMap(String xml) {
		Map<String, Object> map = new HashMap<String, Object>();
		try {
			Document doc = DocumentHelper.parseText(xml);
			if (doc == null)
				return map;
			Element root = doc.getRootElement();
			for (Iterator iterator = root.elementIterator(); iterator.hasNext();) {
				Element e = (Element) iterator.next();
				List list = e.elements();
				if (list.size() > 0) {
					map.put(e.getName(), Dom2Map(e));
				} else
					map.put(e.getName(), e.getText());
			}
		} catch (Exception e) {
			try {
				throw new Exception();
			} catch (Exception e1) {
				e1.printStackTrace();
			}
		}
		return map;
	}


public static Map Dom2Map(Element e) throws Exception {Map map = new HashMap();  
    List list = e.elements();  
    if(list.size() > 0){  
        for (int i = 0;i < list.size(); i++) {  
            Element iter = (Element) list.get(i);  
            List mapList = new ArrayList();  
              
            if(iter.elements().size() > 0){  
                Map m = Dom2Map(iter);  
                if(map.get(iter.getName()) != null){  
                    Object obj = map.get(iter.getName());  
                    if(!obj.getClass().getName().equals("java.util.ArrayList")){  
                        mapList = new ArrayList();  
                        mapList.add(obj);  
                        mapList.add(m);  
                    }  
                    if(obj.getClass().getName().equals("java.util.ArrayList")){  
                        mapList = (List) obj;  
                        mapList.add(m);  
                    }  
                    map.put(iter.getName(), mapList);  
                }else  
                    map.put(iter.getName(), m);  
            }  
            else{  
                if(map.get(iter.getName()) != null){  
                    Object obj = map.get(iter.getName());  
                    if(!obj.getClass().getName().equals("java.util.ArrayList")){  
                        mapList = new ArrayList();  
                        mapList.add(obj);  
                        mapList.add(iter.getText());  
                    }  
                    if(obj.getClass().getName().equals("java.util.ArrayList")){  
                        mapList = (List) obj;  
                        mapList.add(iter.getText());  
                    }  
                    map.put(iter.getName(), mapList);  
                }else  
                    map.put(iter.getName(), iter.getText());  
            }  
        }  
    }else  
        map.put(e.getName(), e.getText());  
    return map;  
}

Map 转 XML

 

public static  String   toXML(Map  _obj,Object key){ 
	    StringBuffer   xml   =   new   StringBuffer(1024);
	    xml.append( "<").append(key).append(">\n"); 
	    xml.append(toXML(_obj)); 
	    xml.append( "</").append(key).append(">"); 
	    return   xml.toString(); 
	    }
	
	private static String toXML(Map _obj) {
		StringBuffer sb = new StringBuffer();
		if (_obj != null) {
			Set keySet = _obj.keySet();
			for (Iterator it = keySet.iterator(); it.hasNext();) {
				Object key = it.next();
				Object value = _obj.get(key);
				if(value instanceof Map){
					sb.append(toXMLMap((Map)value,key));
				}
				else if(value instanceof Collection){
					sb.append(toXMLCollection((Collection)value,key));
				}
				else{
					sb.append(toXMLOtherObject(PMSUtil.isNull(value),key));
				}
			}
		}
		return sb.toString();
	}

	private  static String toXMLCollection(Collection _list,Object key) {
		StringBuffer sb = new StringBuffer();
		if (_list != null) {
			sb.append("<").append(key).append("LIST>").append("\n");
			for (Iterator it = _list.iterator(); it.hasNext();) {
				sb.append("<").append(key).append(">").append("\n");
				sb.append(toXML((Map)it.next()));
				sb.append("</").append(key).append(">").append("\n");
			}
			sb.append("</").append(key).append("LIST>").append("\n ");
		}
		return sb.toString();
	}

	private static String toXMLMap(Map _map,Object node) {
		StringBuffer sb = new StringBuffer();
		if (_map != null) {
			sb.append("<").append(node).append(">").append("\n");
			sb.append(toXML(_map));
			sb.append("</").append(node).append(">").append("\n");
		}
		return sb.toString();
	}

	private static String toXMLOtherObject(Object _obj, Object key) {
		StringBuffer sb = new StringBuffer();
		if (_obj != null) {
			sb.append("<").append(key).append(">");
			sb.append(_obj.toString());
			sb.append("</").append(key).append("> ").append("\n ");
		}
		return sb.toString();
	}

public static void main(String[] args) {
		
		MapToXmlString ma=new MapToXmlString();
		Map map = new HashMap();
		map.put("code", "0");
		map.put("msg", "success");
		System.out.print(ma.toXML(map,"rest"));
	}

  

 

 

 

Map 转 Json

String str = "{\"code\":\"0\",\"msg\":\"success\"}";

 public static Map jasonToMap(String jason) {
        return JSON.parseObject(jason, Map.class);
    }

 

 修改 Json 的值

Map<String,String> value = JSON.parseObject(json,Map.class);
value.put("zzmm","newValue");//改变zzmm的值
JSON.toJSONString(value);//重新转成json字符串,{“name”:"张三","age":"20","xb":“男”,"zzmm":"newValue"}

 

 

 

 

 

分享到:
评论

相关推荐

    java转换xml、list、map和json

    "java转换xml、list、map和json" ...本文主要讲述了Java中将xml、list、map和json之间的转换的相关知识点,包括xml和map之间的转换、xml和list之间的转换、xml和json之间的转换、map和json之间的转换等。

    java对象List,Map转json格式

    在Java编程中,将对象转换成JSON(JavaScript Object Notation)格式是常见的需求,尤其是在与前端JavaScript进行数据交互时。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本篇...

    xml与map相互转换

    xml与map转换 这个应用的情况并不多见,一般都在两个系统间沟通的时候会有xml和json的相互转换。因为map和json是天生可相互转换的,所以这里只有xml能和map进行转换,那json就不是问题了。

    java转换xml、list、map和json[借鉴].pdf

    1. JSON转换: - JSON库:在Java中,常用的JSON库有Gson、Jackson、org.json和json-lib等。在这个例子中,使用的是json-lib,它需要依赖一些特定的JAR包,如commons-beanutils、commons-collections、commons-lang...

    java转换xml、list、map和json.docx

    - json-lib库是进行JSON与XML转换常用的库,依赖的jar包包括`json-lib-2.3-jdk15.jar`等。 - 其他依赖如`commons-beanutils`、`commons-collections`、`commons-lang`、`commons-logging`和`xom`等,都是为了支持...

    json-xml报文互相转换

    相反,将JSON转换为XML的过程则相反: 1. 解析JSON:使用`ObjectMapper`的`readValue()`方法,将JSON字符串解析为Java对象。 2. 构建XML:可以使用`com.fasterxml.jackson.dataformat.xml.XmlMapper`,这是一个专门...

    通过fastjson实现各种格式与json之间的转换

    通过fastjson实现了JavaBean,list,MAP,list等格式与json格式之间的转换,已经附带fastjson的包,包的版本为fastjson-1.1.36.jar

    格式化json格式

    json格式化工具,支持json格式化,xml转换为json,map类型转换为json等。

    java转换xml、list、map和json(20210924214538)[借鉴].pdf

    Java在软件开发中经常涉及到数据格式的转换,如XML、List、Map以及JSON之间的相互转换。这些转换在处理数据交换、API接口或者序列化时尤为关键。以下将详细讲解如何在Java中进行这些转换。 首先,JSON(JavaScript ...

    java转换xml、list、map和json.pdf

    5. **Map/List到JSON转换**: - `JSONSerializer.toJson()`方法将Java对象转换为JSON字符串。对于Map,它会生成一个JSON对象;对于List,它会生成一个JSON数组。 - `XMLSerializer`类允许将JSON对象转换回XML,这...

    java与json互相转换的jar包

    虽然主要针对XML,但有时在处理JSON数据时,可能需要与XML进行交互,例如将JSON转换为XML或者反之。 7. **ezmorph-1.0.6.jar.zip**:Ezmorph库提供了对象转换的功能,它可以将一个对象转换成另一种类型。在JSON处理...

    json转换工具jackson

    本文将深入探讨Jackson作为JSON转换工具的关键知识点,并基于提供的博文链接进行补充。 1. **Jackson库介绍** Jackson是一个开源项目,其核心库为`com.fasterxml.jackson.core`,包括`jackson-databind`、`jackson...

    JSON-lib框架,转换JSON、XML不再困难

    2. 将JSON转换为Java对象:使用`JSONObject.toBean(jsonObject)`,可以将JSON对象转换为对应的Java类实例。 3. JSON与XML之间的转换:`XML.toJSONObject(xmlString)`可以将XML字符串转换为JSON对象,而`jsonObject....

    Java读取json文件,并转化为map取值

    接下来,我们将学习如何读取JSON文件并转换为Map。首先,创建一个Java类,例如`JsonToMapConverter`,然后定义一个方法来完成这个任务: ```java import com.fasterxml.jackson.databind.ObjectMapper; import java...

    Map转JSON的jar包

    总的来说,Map转JSON的过程涉及选择合适的JSON库,导入所需的类,然后使用提供的API将Map对象转换为JSON字符串。在选择库时,应考虑项目规模、性能需求以及团队对库的熟悉程度。对于初学者来说,Gson通常是一个不错...

    JSON-lib框架,转换JSON、XML不再困难

    JSON-lib是一个用于Java平台的强大且灵活的库,它可以实现Java对象与JSON、XML格式数据之间的互相转换。对于那些希望在Java应用程序中轻松处理JSON或XML数据的开发者来说,这是一个非常有用的工具。 #### 二、准备...

    json格式化单机版工具(实用版本)无需联网

    HiJson支持的功能包括:格式化JSON,XML转JSON,MAP转JSON,格式化XML,节点查找及文本查找等,免费,强大! Json(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。...

    json格式化工具32、64位

    2. **XML转JSON**:除了基本的JSON格式化功能,iJson还支持XML数据转换成JSON格式。这种转换对于那些需要在XML和JSON之间切换的开发者来说非常实用,因为这两种格式在不同的场景下各有优势。 3. **MAP转JSON**:在...

    json2XMLjar.rar

    然而,根据实际需求,有时需要将JSON转换为XML,或者反之。"json2XMLjar.rar"这个压缩包就是为了实现这种转换提供所需的Java库。 首先,我们来看一下压缩包中包含的几个关键库: 1. **commons-collections-3.1.jar...

    Map转成json

    Map和Json都是广泛使用的数据格式,但它们有着不同的应用场景。Map是许多编程语言(如Java、Python等)中的一个内置数据类型,用于存储键值对,而Json则是一种轻量级的数据交换格式,常用于Web服务的数据传输。本...

Global site tag (gtag.js) - Google Analytics