使用json-lib的XMLSerializer對象
成都創(chuàng)新互聯(lián)是少有的成都做網(wǎng)站、網(wǎng)站制作、成都外貿網(wǎng)站建設、營銷型企業(yè)網(wǎng)站、微信小程序定制開發(fā)、手機APP,開發(fā)、制作、設計、友情鏈接、推廣優(yōu)化一站式服務網(wǎng)絡公司,成立于2013年,堅持透明化,價格低,無套路經(jīng)營理念。讓網(wǎng)頁驚喜每一位訪客多年來深受用戶好評
(1)創(chuàng)建XMLSerializer對象
(2)使用XMLSerializer的read(xml)方法即可
[java] view plain copy
/* 第二種方法,使用json-lib提供的方法 */
//創(chuàng)建 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提供的方法 */
//創(chuàng)建 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"}]}
放上maven依賴
dependency
groupIdorg.json/groupId
artifactIdjson/artifactId
version20151123/version
/dependency
xml字符串轉換為json字符串代碼實現(xiàn)如下:
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對象代碼實現(xiàn)如下:
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對象時發(fā)生異常,json串="+jsonString);
throw new RuntimeException("json串轉json對象時發(fā)生異常,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國網(wǎng)浙江省電力公司/payUnitName
/payUnit
/payUnits
/payUnitinfo
當xml中出現(xiàn)多個payUnit時,org.json將xml中的payUnit轉換為json數(shù)組格式的字符串,當只有一個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;
}
之所以使用JSON一般是為了跳過XML這個過程,使JAVA類型到客戶端的javascript類型可以不需要再解析XML就直接生成.為什么會從XML轉換成json?
個人建議是通過Java解析XML,生成JavaBean或者其它類型的java對象,然后使用GSON,將java對象轉化成json.GSON是google開發(fā)的一個包,小巧而功能強大,可定制性也很強,推薦使用.
其實這個應該沒有什么標準答案啦,只要寫成的格式前臺或者后臺按照這個格式解析就可以啦,比如
[{'title':'programming','price':'$4.00','name':'C++'}],
這是一條信息,如果多條就用逗號隔開如:
[{'title':'programming','price':'$4.00','name':'C++'},{'title':'programming','price':'$4.00','name':'C++'},]]
有的情況用單引號或者雙引號都可,有時只能用雙引號好像,記不清了
網(wǎng)站可以直接轉:
如果是代碼中使用,可以讀取xml文件轉成對象后,再用newtonsoft.json轉成json對象
本文題目:go語言xml轉json,go解析xml
地址分享:http://sd-ha.com/article42/hdhiec.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)站內鏈、網(wǎng)頁設計公司、虛擬主機、網(wǎng)站策劃、云服務器
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)