1

我是 Json 的新手,我有一个简单的问题。

我正在尝试使用 c# 将 json 文件转换为 xml 文件。但它抛出一个异常。

代码是;

  private void TakeXML()
    {
        string json = ReadText();

        XmlDocument doc = (XmlDocument)Newtonsoft.Json.JsonConvert.DeserializeXmlNode(json);

        XmlTextWriter writer = new XmlTextWriter("json.xml", null);
        writer.Formatting = Formatting.Indented;
        doc.Save(writer);
    }

ReadText 函数是;

 private string ReadText()
    {
        FileStream fs = new FileStream(@"C:\Users\Sinan\Desktop\bina.json", FileMode.Open, FileAccess.Read);
        StreamReader sr = new StreamReader(fs);
        string json;
        try
        {
            json = sr.ReadToEnd();
            return json;

        }
        catch (Exception)
        {
            return null;
        }
        finally
        {

            sr.Close();
            fs.Dispose();
        }
    }

对于XmlDocument doc = (XmlDocument)Newtonsoft.Json.JsonConvert.DeserializeXmlNode(json);线,它说;

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

我正在寻找解决这个问题,但我还没有找到它。如果你在这方面帮助我,我会很高兴。谢谢你。

4

1 回答 1

2

在方法DeserializeXmlNode中,在第二个参数中指定根节点名称,如下代码所示:

XmlDocument doc =
  (XmlDocument)
     Newtonsoft.Json.JsonConvert.DeserializeXmlNode(json, "rootNodeName");
                                                   // second parameter

尽管如果您可以提供 json 字符串,那么很容易给出准确的答案。

参考链接:将 JSON 转换为 XML

于 2013-09-19T12:03:54.723 回答