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 = @"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'
}
]
}