天天看點

json互轉xml

1、Json轉為xml

導入GSON包,google開發的已知最為友善的Json解析包。

<dependency>
		    <groupId>de.gerdi-project</groupId>
		    <artifactId>GSON</artifactId>
		    <version>6.0.5</version>
	</dependency>
           

解析Json包生成xml

/**
jsonElement  json的元素
parentElement XML的父節點
name 名字
*/
public static Element toXml(JsonElement jsonElement,Element parentElement,String name) {
    	//該json元素為數組 便依次周遊
		if(jsonElement instanceof JsonArray) {
			JsonArray sonJsonArray = (JsonArray)jsonElement;
			for(int i =0;i<sonJsonArray.size();i++) {
				JsonElement arrayElement = sonJsonArray.get(i);
                //遞歸進行周遊
				toXml(arrayElement,parentElement,name);
			}
        //該json元素為單獨對象,則加入xml
		}else if(jsonElement instanceof JsonObject) {
			JsonObject sonJsonObject = (JsonObject) jsonElement;
			Element currentElement = null;
			if(name != null) {
				currentElement = parentElement.addElement(name);
			}
			Set<Entry<String,JsonElement>> set = sonJsonObject.entrySet();
			for(Entry<String,JsonElement> s: set) {
				toXml(s.getValue(),currentElement!=null?currentElement:parentElement,s.getKey());
			}
		}else {
			addAttribute(parentElement,name,jsonElement.getAsString());
		}
		return parentElement;
	}
	public static void addAttribute(Element element, String name, String value) {
		//增加子節點,并為子節點指派
		Element el = element.addElement(name);
		el.addText(value);
	}
           

2、xml轉Json

xml轉Json較為簡單,XML的靜态方法支援轉化。

public static String xmljsonString() throws JSONException, IOException {
        InputStream in = XmlToJson.class.getResourceAsStream("test.xml");
        String xml = IOUtils.toString(in);
        JSONObject xmlJSONObj = XML.toJSONObject(xml);
        return xmlJSONObj.toString();
    }

           

參考:https://blog.csdn.net/baidu_38322198/article/details/90237806