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' } ] }