Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

วิธีแปลง XML เป็น Json และ Json กลับเป็น XML โดยใช้ Newtonsoft.json


Json.NET รองรับการแปลง JSON เป็น XML และในทางกลับกันโดยใช้ XmlNodeConverter

องค์ประกอบ คุณลักษณะ ข้อความ ความคิดเห็น ข้อมูลอักขระ คำแนะนำในการประมวลผล เนมสเปซ และการประกาศ XML ทั้งหมดจะถูกเก็บรักษาไว้เมื่อทำการแปลงระหว่างทั้งสอง

SerializeXmlNode

JsonConvert มีวิธีช่วยสองวิธีในการแปลงระหว่าง JSON และ XML อย่างแรกคือ SerializeXmlNode() เมธอดนี้ใช้ XmlNode และทำให้เป็นอนุกรมกับข้อความ JSON

ดีซีเรียลไลซ์XmlNode

วิธีตัวช่วยที่สองบน JsonConvert คือ DeserializeXmlNode() เมธอดนี้นำข้อความ JSON และยกเลิกการซีเรียลไลซ์ลงใน XmlNode

ตัวอย่างที่ 1

static void Main(string[] args) {
   string xml = @"Alanhttps://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":"https://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': 'https://www.google1.com'
            },
            {
            '@id': '2',
            'name': 'Louis',
            'url': 'https://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': 'https://www.google1.com'
      },
      {
      '@id': '2',
      'name': 'Louis',
      'url': 'https://www.yahoo1.com'
      }
   ]
}