ホームページ  >  記事  >  バックエンド開発  >  Newtonsoft.json を使用して XML を Json に変換し、Json を XML に戻すにはどうすればよいですか?

Newtonsoft.json を使用して XML を Json に変換し、Json を XML に戻すにはどうすればよいですか?

WBOY
WBOY転載
2023-09-12 19:01:061022ブラウズ

如何使用 Newtonsoft.json 将 XML 转换为 Json 以及将 Json 转换回 XML?

Json.NET は、XmlNodeConverter を使用した JSON から XML への変換、およびその逆の変換をサポートしています。

要素、属性、テキスト、コメント、文字データ、処理命令、名前空間、および XML 宣言は、変換中に 2 つの間で保持されます

SerializeXmlNode

JsonConvert には 2 つのヘルパー メソッドがありますJSON と XML 間の変換用。 1 つ目は SerializeXmlNode() です。このメソッドは XmlNode を取得し、それを JSON テキストにシリアル化します。

DeserializeXmlNode

JsonConvert の 2 番目のヘルパー メソッドは DeserializeXmlNode() です。このメソッドは、JSON テキストを取得し、それを XmlNode に逆シリアル化します。

例 1

static void Main(string[] args) {
   string xml = @"Alanhttp://www.google1.com Admin1";
   XmlDocument doc = new XmlDocument();
   doc.LoadXml(xml);
   string json = JsonConvert.SerializeXmlNode(doc);
   Console.WriteLine(json);
   Console.ReadLine();
}

出力

{"person":{"@id":"1","name":"Alan","url":"http://www.google1.com","role":"Admin1"}}

例 2

static void Main(string[] args) {
   string json = @"{
      '?xml': {
         '@version': '1.0',
         '@standalone': 'no'
      },
      'root': {
         'person': [
            {
            '@id': '1',
            'name': 'Alan',
            'url': 'http://www.google1.com'
            },
            {
            '@id': '2',
            'name': 'Louis',
            'url': 'http://www.yahoo1.com'
            }
         ]
      }
   }";
   XmlDocument doc = (XmlDocument)JsonConvert.DeserializeXmlNode(json);
   Console.WriteLine(json);
   Console.ReadLine();
}

出力

'?xml': {
   '@version': '1.0',
   '@standalone': 'no'
},
'root': {
   'person': [
      {
      '@id': '1',
      'name': 'Alan',
      'url': 'http://www.google1.com'
      },
      {
      '@id': '2',
      'name': 'Louis',
      'url': 'http://www.yahoo1.com'
      }
   ]
}

以上がNewtonsoft.json を使用して XML を Json に変換し、Json を XML に戻すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。