C# XML與Json之間的相互轉換


前言

對於這轉換其實很簡單,其中最重要的就是先要引用類庫。可以到官網進行下載引用http://json.codeplex.com

前兩天學習了Jquery ajax提交Json后台處理文章鏈接為http://www.cnblogs.com/aehyok/archive/2013/05/18/3085499.html

XML轉換為Json字符串  

 string xml = @"<?xml version=""1.0"" standalone=""no""?>
                            <root>
                              <person id=""1"">
                              <name>Alan</name>
                              <url>http://www.google.com</url>
                              </person>
                              <person id=""2"">
                              <name>Louis</name>
                              <url>http://www.yahoo.com</url>
                              </person>
                            </root>";

這是在代碼中預定義的一個xml字符串。

            XmlDocument doc = new XmlDocument();
            doc.LoadXml(xml);

然后將xml字符串讀入到XML文檔。

            string jsonText = JsonConvert.SerializeXmlNode(doc);
            Console.WriteLine(jsonText);

然后通過Json.Net類庫中專有的方法進行轉換即可
運行結果為:

Json字符串轉換為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""
                                  }
                                ]
                              }
                            }";

預定義的Json字符串如上
同理調用Json.Net類庫中的方法

            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 + "}";

同理進行調用

                XmlDocument doc2 = JsonConvert.DeserializeXmlNode(json1);
                Console.WriteLine(doc2.OuterXml);

結果為

 

總結

 調用很簡單,只要將傳遞的XML或者Json字符串格式搞正確,那么得到想要的結果就不難。代碼可以直接Copy調用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM