将JSON转换为XML并保存XML

问题描述:

我想将一些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

我测试你的代码,它工作完全正常,我。根据为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比如这里: