xml轉json在線java,xml轉json在線轉換

本文目錄一覽:

如何將xml的字元串轉換為json

放上maven依賴

dependency

groupIdorg.json/groupId

artifactIdjson/artifactId

version20151123/version

/dependency

xml字元串轉換為json字元串代碼實現如下:

import org.json.JSONException;

import org.json.JSONObject;

import org.json.XML;

public class JsonUtils {

public static String xml2jsonString(String xml)throws JSONException{

JSONObject xmlJSONObj = XML.toJSONObject(xml);

return xmlJSONObj.toString();

}

}

json字元串轉換為json對象代碼實現如下:

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONObject;

JSONObject jsonObject = null;

try{

jsonObject = JSON.parseObject(jsonString);

}catch(Exception e){

logger.error(“json串轉json對象時發生異常,json串=”+jsonString);

throw new RuntimeException(“json串轉json對象時發生異常,json串=”+jsonString,e);

}

return jsonObject;

不過org.json有個問題比較麻煩,xml如下所示:

?xml version=”1.0″ encoding=”gb2312″?

payUnitinfo

err_msg/err_msg

retcode1/retcode

payUnits

payUnit

provinceIdv1955/provinceId

cityIdv1961/cityId

payProjectIdc2680/payProjectId

payUnitIdv96564/payUnitId

payUnitName浙江省電費/payUnitName

/payUnit

payUnit

provinceIdv1955/provinceId

cityIdv1961/cityId

payProjectIdc2680/payProjectId

payUnitIdv85002/payUnitId

payUnitName國網浙江省電力公司/payUnitName

/payUnit

/payUnits

/payUnitinfo

當xml中出現多個payUnit時,org.json將xml中的payUnit轉換為json數組格式的字元串,當只有一個payUnit時,org.json將xml中的payUnit轉換為json對象格式的字元串。

假設jsonObject是上述xml轉換為json對象後的變數,則通過以下方式獲取:

JSONObject payUnitsJsonObject = jsonObject.getJSONObject(“payUnitinfo”).getJSONObject(“payUnits”);

JSONObject payUnitJsonObject = null;

JSONArray payUnitJsonArray = null;

Object payUnitObject = payUnitsJsonObject.get(“payUnit”);

if(payUnitObject instanceof JSONObject){

payUnitJsonObject = (JSONObject)payUnitObject;

}else if(payUnitObject instanceof JSONArray){

payUnitJsonArray = (JSONArray)payUnitObject;

}

如何將XML文檔轉換為JSON格式

之所以使用JSON一般是為了跳過XML這個過程,使JAVA類型到客戶端的javascript類型可以不需要再解析XML就直接生成.為什麼會從XML轉換成json?

個人建議是通過Java解析XML,生成JavaBean或者其它類型的java對象,然後使用GSON,將java對象轉化成json.GSON是google開發的一個包,小巧而功能強大,可定製性也很強,推薦使用.

如何把xml轉成json對象,底層代碼

使用json-lib的XMLSerializer對象

(1)創建XMLSerializer對象

(2)使用XMLSerializer的read(xml)方法即可

[java] view plain copy

/* 第二種方法,使用json-lib提供的方法 */

//創建 XMLSerializer對象

XMLSerializer xmlSerializer = new XMLSerializer();

//將xml轉為json(註:如果是元素的屬性,會在json里的key前加一個@標識)

String result = xmlSerializer.read(xml).toString();

//輸出json內容

System.out.println(result);

3.測試

[java] view plain copy

public class Test {

public static void main(String[] args) {

String xml = “class id=”

+ “‘1′”

+ “studentnameaaaaaa/nameage21/age/studentstudentnamebbbbbb/nameage22/age/student/class”;

/* 第一種方法,使用JSON-JAVA提供的方法 */

//將xml轉為json

JSONObject xmlJSONObj = XML.toJSONObject(xml);

//設置縮進

String jsonPrettyPrintString = xmlJSONObj.toString(4);

//輸出格式化後的json

System.out.println(jsonPrettyPrintString);

/* 第二種方法,使用json-lib提供的方法 */

//創建 XMLSerializer對象

XMLSerializer xmlSerializer = new XMLSerializer();

//將xml轉為json(註:如果是元素的屬性,會在json里的key前加一個@標識)

String result = xmlSerializer.read(xml).toString();

//輸出json內容

System.out.println(result);

}

第一種方法輸出:

[java] view plain copy

{“class”: {

“id”: 1,

“student”: [

{

“age”: 21,

“name”: “aaaaaa”

},

{

“age”: 22,

“name”: “bbbbbb”

}

]

}}

第二種方法輸出:

[java] view plain copy

{“@id”:”1″,”student”:[{“name”:”aaaaaa”,”age”:”21″},{“name”:”bbbbbb”,”age”:”22″}]}

在java中怎麼把xml文件轉換成json格式

在java中把xml文件轉換成json格式

1、前提需要jar包:

json-lib-2.4-jdk15.jar 和 xom-1.2.5.jar ,maven 倉庫:

net.sf.json-lib

json-lib

2.4

jdk15

xom

xom

1.2.5

2、代碼部分:

public static JSON xmlToJson(String xml) {

XMLSerializer xmlSerializer = new XMLSerializer();

if(xml!=null !」「.equals(xml)){

xml = xml.replaceAll(「\r|\n」, 「」);

JSON json = xmlSerializer.read(xml);

return json;

}else{

return null;

}

}

public static void main(String[] args) {

String xmlStr = “parentid01/idnamemarry/name/parent”;

JSON json = xmlToJson(xmlStr);

System.out.println(json.toString());

}

3、結果:

{「id」:」01」,」name」:」marry」}

JAVA能把下面的 xml 轉化為JSON

ppackage com.shine.framework.core.util;/p

import java.io.ByteArrayOutputStream;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import net.sf.json.JSON;

import net.sf.json.JSONSerializer;

import net.sf.json.xml.XMLSerializer;

import org.dom4j.Document;

import org.dom4j.DocumentHelper;

import org.dom4j.Element;

import org.dom4j.io.OutputFormat;

import org.dom4j.io.XMLWriter;

/**

* common xml conver utility

*

* @author viruscodecn@gmail.com

* @version Framework 2010.10.26

* @url

*/

public class XmlConverUtil {

/**

* map to xml xml nodekey label=”key1″value1/keykey

* label=”key2″value2/key……/node

*

* @param map

* @return

*/

public static String maptoXml(Map map) {

Document document = DocumentHelper.createDocument();

Element nodeElement = document.addElement(“node”);

for (Object obj : map.keySet()) {

Element keyElement = nodeElement.addElement(“key”);

keyElement.addAttribute(“label”, String.valueOf(obj));

keyElement.setText(String.valueOf(map.get(obj)));

}

return doc2String(document);

}

/**

* list to xml xml nodesnodekey label=”key1″value1/keykey

* label=”key2″value2/key……/nodenodekey

* label=”key1″value1/keykey

* label=”key2″value2/key……/node/nodes

*

* @param list

* @return

*/

public static String listtoXml(List list) throws Exception {

Document document = DocumentHelper.createDocument();

Element nodesElement = document.addElement(“nodes”);

int i = 0;

for (Object o : list) {

Element nodeElement = nodesElement.addElement(“node”);

if (o instanceof Map) {

for (Object obj : ((Map) o).keySet()) {

Element keyElement = nodeElement.addElement(“key”);

keyElement.addAttribute(“label”, String.valueOf(obj));

keyElement.setText(String.valueOf(((Map) o).get(obj)));

}

} else {

Element keyElement = nodeElement.addElement(“key”);

keyElement.addAttribute(“label”, String.valueOf(i));

keyElement.setText(String.valueOf(o));

}

i++;

}

return doc2String(document);

}

/**

* json to xml {“node”:{“key”:{“@label”:”key1″,”#text”:”value1″}}} conver

* onode class=”object”key class=”object”

* label=”key1″value1/key/node/o

*

* @param json

* @return

*/

public static String jsontoXml(String json) {

try {

XMLSerializer serializer = new XMLSerializer();

JSON jsonObject = JSONSerializer.toJSON(json);

return serializer.write(jsonObject);

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

/**

* xml to map xml nodekey label=”key1″value1/keykey

* label=”key2″value2/key……/node

*

* @param xml

* @return

*/

public static Map xmltoMap(String xml) {

try {

Map map = new HashMap();

Document document = DocumentHelper.parseText(xml);

Element nodeElement = document.getRootElement();

List node = nodeElement.elements();

for (Iterator it = node.iterator(); it.hasNext();) {

Element elm = (Element) it.next();

map.put(elm.attributeValue(“label”), elm.getText());

elm = null;

}

node = null;

nodeElement = null;

document = null;

return map;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

/**

* xml to list xml nodesnodekey label=”key1″value1/keykey

* label=”key2″value2/key……/nodenodekey

* label=”key1″value1/keykey

* label=”key2″value2/key……/node/nodes

*

* @param xml

* @return

*/

public static List xmltoList(String xml) {

try {

ListMap list = new ArrayListMap();

Document document = DocumentHelper.parseText(xml);

Element nodesElement = document.getRootElement();

List nodes = nodesElement.elements();

for (Iterator its = nodes.iterator(); its.hasNext();) {

Element nodeElement = (Element) its.next();

Map map = xmltoMap(nodeElement.asXML());

list.add(map);

map = null;

}

nodes = null;

nodesElement = null;

document = null;

return list;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

/**

* xml to json nodekey label=”key1″value1/key/node 轉化為

* {“key”:{“@label”:”key1″,”#text”:”value1″}}

*

* @param xml

* @return

*/

public static String xmltoJson(String xml) {

XMLSerializer xmlSerializer = new XMLSerializer();

return xmlSerializer.read(xml).toString();

}

/**

*

* @param document

* @return

*/

public static String doc2String(Document document) {

String s = “”;

try {

// 使用輸出流來進行轉化

ByteArrayOutputStream out = new ByteArrayOutputStream();

// 使用UTF-8編碼

OutputFormat format = new OutputFormat(” “, true, “UTF-8”);

XMLWriter writer = new XMLWriter(out, format);

writer.write(document);

s = out.toString(“UTF-8”);

} catch (Exception ex) {

ex.printStackTrace();

}

return s;

}

}需要的jar

需要json-lib-2.1-jdk15.jar和xom-1.2.5.jar,maven pom.xml如下:

原創文章,作者:TVJD,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/148472.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
TVJD的頭像TVJD
上一篇 2024-11-03 15:16
下一篇 2024-11-03 15:16

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論