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)
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)
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>


