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以下のコードに示すように、メソッドで 2 番目のパラメーターにルート ノード名を指定します。

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

json文字列を与えることができれば、正確な答えを出すのは簡単ですが.

参考リンク:JSON から XML への変換

于 2013-09-19T12:03:54.723 に答える