2011-01-08 10 views
2

Ich versuche, einige JSON in XML zu konvertieren und dann mit JSON.NET in C# zu speichern, aber ich kann es nicht bekommen.JSON in XML konvertieren und XML speichern

Hier ist, was ich habe:

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

Was nicht funktioniert? Irgendwelche Fehler? Ausnahmen? – Oded

+0

Ich fand eine Ausnahme. 'Eine erste Möglichkeit Ausnahme des Typs 'Newtonsoft.Json.JsonSerializationException' aufgetreten in Newtonsoft.Json.Net35.dll' – user556396

+0

Das bedeutet, es wurde abgefangen und von' Json.NET' behandelt. Du hast immer noch nicht erklärt, was nicht funktioniert. – Oded

Antwort

2

ich Ihren Code getestet und es funktioniert für mich völlig in Ordnung. Gemäß der Dokumentation für DeserializeXmlNode sollte dies auf jeden Fall funktionieren:

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

Testen Sie Ihre Methode mit dem JSON-String oben, um zu überprüfen, ob es funktioniert. Ich würde sagen, Sie haben ein Problem damit, dass Ihr JSON nicht gültig ist.

Sie können Ihre JSON zum Beispiel bestätigen hier: