2011-01-08 193 views
2

我想將一些JSON轉換爲XML,然後在C#中使用JSON.NET保存它,但我似乎無法得到它。將JSON轉換爲XML並保存XML

這裏是我有:

using System.XML; 
using Newtonsoft; 

XmlDocument doc = (XmlDocument)Newtonsoft.Json.JsonConvert.DeserializeXmlNode(json); 
XmlTextWriter writer = new XmlTextWriter("json.xml", null); 
writer.Formatting = Formatting.Indented; 
doc.Save(writer); 
+0

什麼是不工作?任何錯誤?例外? – Oded 2011-01-08 18:26:24

回答

2

我測試你的代碼,它工作完全正常,我。根據爲DeserializeXmlNode這應該肯定的文檔工作:

// { "?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" } ] } } 
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\" } ] } }"; 

System.Xml.XmlDocument xmlDocument = Newtonsoft.Json.JsonConvert.DeserializeXmlNode(json); 
System.Xml.XmlTextWriter xmlTextWriter = new System.Xml.XmlTextWriter("json.xml", null); 
xmlTextWriter.Formatting = System.Xml.Formatting.Indented; 
xmlDocument.Save(xmlTextWriter); 

//<?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> 

測試你的方法與上面的JSON字符串,以驗證它是否工作。我會說你有一個問題,你的JSON無效。

您可以驗證您的JSON比如這裏: