Json.NET, XmlNodeConverter‘ı kullanarak JSON‘u XML‘e ve XML‘i JSON‘a dönüştürmeyi destekler.
Elemanlar, nitelikler, metin, yorumlar, karakter verileri, işleme talimatları, ad alanları ve XML bildirimi ikisi arasında dönüşüm sağlanırken korunur. (C# – JSON ve XML Arasında Dönüştürme İşlemleri)
Özellikler
JSON ve XML Elemanları değişmeden kalır.
Elemanların önüne bir @ işareti konur ve bu nesnenin başında olur.
Karakter verileri, açıklamalar, boşluklar ve önemli boşluk düğümlerine sırasıyla # cdata-section, #comment, #whitespace ve # significant-whitespace üzerinden erişilir.
Aynı seviyede aynı ada sahip birden fazla düğüm bir araya getirilerek bir dizi haline getirilir.
Boş öğeler yine boş olarak dönüştürme işlemine tabi tutulur.
Not: Uygulamanızda kullanılan Json.NET sürümü, XML dönüştürme yöntemlerinin kullanılabilirliğini değiştirecektir. Framework XmlDocument’ı desteklediğinde SerializeXmlNode / DeserializeXmlNode kullanılabilir.
XML – JSON Dönüştürme Örneği (SerializeXmlNode)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | string xml = @"<?xml version='1.0' standalone='no'?> <root> <person id='1'> <name>Alan</name> <url>http://www.google.com</url> </person> <person id='2'> <name>Louis</name> <url>http://www.yahoo.com</url> </person> </root>"; XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); string jsonText = JsonConvert.SerializeXmlNode(doc); //{ // "?xml": { // "@version": "1.0", // "@standalone": "no" // }, // "root": { // "person": [ // { // "@id": "1", // "name": "Alan", // "url": "http://www.google.com" // }, // { // "@id": "2", // "name": "Louis", // "url": "http://www.yahoo.com" // } // ] // } //} |
JSON – XML Dönüştürme Örneği (DeserializeXmlNode)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | string json = @"{ '?xml': { '@version': '1.0', '@standalone': 'no' }, 'root': { 'person': [ { '@id': '1', 'name': 'Alan', 'url': 'http://www.google.com' }, { '@id': '2', 'name': 'Louis', 'url': 'http://www.yahoo.com' } ] } }"; XmlDocument doc = (XmlDocument)JsonConvert.DeserializeXmlNode(json); // <?xml version="1.0" standalone="no"?> // <root> // <person id="1"> // <name>Alan</name> // <url>http://www.google.com</url> // </person> // <person id="2"> // <name>Louis</name> // <url>http://www.yahoo.com</url> // </person> // </root> |