将JSON转换为XML

luk*_*kso 15 c# xml json converter

我试图将JSON输出转换为XML.不幸的是我收到此错误:

JSON根对象具有多个属性.根对象必须具有单个属性才能创建有效的XML文档.考虑指定DeserializeRootElementName.

这就是我现在所创造的.

string url = string.Format("https://graph.facebook.com/{0}?fields=posts.fields(message)&access_token={1}", user_name, access_token);

HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;

using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
    StreamReader reader = new StreamReader(response.GetResponseStream());
    jsonOutput = reader.ReadToEnd();
    Console.WriteLine("THIS IS JSON OUTPUT: " + jsonOutput);
}
XmlDocument doc = (XmlDocument)JsonConvert.DeserializeXmlNode(jsonOutput);
Console.WriteLine(doc);
Run Code Online (Sandbox Code Playgroud)

这是我的JSON输出:

{"id":"108013515952807","posts":{"data":[{"id":"108013515952807_470186843068804","created_time":"2013-05-14T20:43:28+0000"},{"message":"TEKST","id":"108013515952807_470178529736302","created_time":"2013-05-14T20:22:07+0000"}
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

jwa*_*zko 30

尽管问题中提供的JSON不完整,但您可以在顶级具有多个属性,如异常所示.您必须为其定义根以获取有效的XML:

var doc = JsonConvert.DeserializeXmlNode(jsonOutput, "root");
Run Code Online (Sandbox Code Playgroud)

编辑:为了使用缩进打印出您的XML,您可以使用命名空间中的XDocumentSystem.Xml.Linq:XDocument.Parse(doc.InnerXml).