C# XML與Json之間相互轉(zhuǎn)換實(shí)例詳解
對(duì)于這轉(zhuǎn)換其實(shí)很簡(jiǎn)單,其中最重要的就是先要引用類庫(kù)??梢缘焦倬W(wǎng)進(jìn)行下載引用http://json.codeplex.com。
XML轉(zhuǎn)換為Json字符串
string xml = @"<?xml version=""1.0"" standalone=""no""?>
<root>
<person id=""1"">
<name>Alan</name>
<url>http://www.dhdzp.com</url>
</person>
<person id=""2"">
<name>Louis</name>
<url>http://www.dhdzp.com</url>
</person>
</root>";
這是在代碼中預(yù)定義的一個(gè)xml字符串。
mlDocument doc = new XmlDocument();
doc.LoadXml(xml);
然后將xml字符串讀入到XML文檔。
string jsonText = JsonConvert.SerializeXmlNode(doc);
Console.WriteLine(jsonText);
然后通過(guò)Json.Net類庫(kù)中專有的方法進(jìn)行轉(zhuǎn)換即可
運(yùn)行結(jié)果為:

Json字符串轉(zhuǎn)換為XML
第一種格式的Json字符串
string json = @"{
""?xml"": {
""@version"": ""1.0"",
""@standalone"": ""no""
},
""root"": {
""person"": [
{
""@id"": ""1"",
""name"": ""Alan"",
""url"": ""http://www.google.com""
},
{
""@id"": ""2"",
""name"": ""Louis"",
""url"": ""http://www.yahoo.com""
}
]
}
}";
預(yù)定義的Json字符串如上
同理調(diào)用Json.Net類庫(kù)中的方法
XmlDocument doc1 = JsonConvert.DeserializeXmlNode(json);
Console.WriteLine(doc1.OuterXml);

第二種格式的Json字符串
string json_str = "{\"a\":\"a\",\"b\":\"b\"}";
string json1 = @"{
""?xml"": {
""@version"": ""1.0"",
""@standalone"": ""no""
},
""root"":" + json_str + "}";
同理進(jìn)行調(diào)用
XmlDocument doc2 = JsonConvert.DeserializeXmlNode(json1);
Console.WriteLine(doc2.OuterXml);

調(diào)用很簡(jiǎn)單,只要將傳遞的XML或者Json字符串格式搞正確,那么得到想要的結(jié)果就不難。代碼可以直接Copy調(diào)用。
PS:關(guān)于json操作,這里再為大家推薦幾款比較實(shí)用的json在線工具供大家參考使用:
在線JSON代碼檢驗(yàn)、檢驗(yàn)、美化、格式化工具:
http://tools.jb51.net/code/json
JSON在線格式化工具:
http://tools.jb51.net/code/jsonformat
在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson
json代碼在線格式化/美化/壓縮/編輯/轉(zhuǎn)換工具:
http://tools.jb51.net/code/jsoncodeformat
在線json壓縮/轉(zhuǎn)義工具:
http://tools.jb51.net/code/json_yasuo_trans
C語(yǔ)言風(fēng)格/HTML/CSS/json代碼格式化美化工具:
http://tools.jb51.net/code/ccode_html_css_json
- C#解析json文件的實(shí)現(xiàn)代碼
- asp.net(C#)解析Json的類代碼
- C#解析JSON實(shí)例
- c#版json數(shù)據(jù)解析示例分享
- C#將Json解析成DateTable的方法
- C#解析json字符串總是多出雙引號(hào)的原因分析及解決辦法
- C#使用LitJson解析JSON的示例代碼
- 詳解C#對(duì)XML、JSON等格式的解析
- c#處理3種json數(shù)據(jù)的實(shí)例
- C#實(shí)現(xiàn)json的序列化和反序列化實(shí)例代碼
- C#實(shí)現(xiàn)任意數(shù)據(jù)類型轉(zhuǎn)成json格式輸出
- C#實(shí)現(xiàn)json格式數(shù)據(jù)解析功能的方法詳解
相關(guān)文章
C# 從Excel讀取數(shù)據(jù)向SQL server寫入
這篇文章主要介紹了C# 從Excel讀取數(shù)據(jù)向SQL server寫入的方法,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-03-03
C#5.0中的異步編程關(guān)鍵字async和await
這篇文章介紹了C#5.0中的異步編程關(guān)鍵字async和await,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
C# ODP.NET 調(diào)用Oracle函數(shù)返回值時(shí)報(bào)錯(cuò)的一個(gè)解決方案
這篇文章主要介紹了C# ODP.NET 調(diào)用Oracle函數(shù)返回值時(shí)報(bào)錯(cuò)的一個(gè)解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
c#利用Excel直接讀取數(shù)據(jù)到DataGridView
這個(gè)例子的功能是c#讀取excel文件,大家可以參考使用2013-11-11
C# 無(wú)需COM組件創(chuàng)建快捷方式的實(shí)現(xiàn)代碼
做一個(gè)小程序, 需要?jiǎng)?chuàng)建快捷方式, 網(wǎng)上普遍的做法是引入 COM 組件, 雖然也挺方便的, 但引入之后, 程序就需要多帶一個(gè) dll 文件, 這樣, 想做成單文件便攜版就不行了2011-05-05
C#以太網(wǎng)Sockets客戶端設(shè)計(jì)實(shí)現(xiàn)
本文主要介紹了C#以太網(wǎng)Sockets客戶端設(shè)計(jì)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
C#使用yield關(guān)鍵字構(gòu)建迭代器詳解
這篇文章主要為大家詳細(xì)介紹了C#使用yield關(guān)鍵字構(gòu)建迭代器的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10

