2011-01-08 13 views
2

JSONをXMLに変換しようとしていますが、JSON.NETを使用してC#に保存しようとしていますが、それを取得できないようです。ここで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

+0

私は1つの例外を発見しました。 'Newtonsoft.Json.JsonSerializationException '型の最初のチャンス例外がNewtonsoft.Json.Net35.dllで発生しました。 – user556396

+0

これは、' Json.NET'によって捕捉されて処理されたことを意味します。あなたはまだ動作しないものについては説明しませんでした。 – Oded

答えて

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を検証することができます。

関連する問題