Json.NET支持使用XmlNodeConverter将JSON转换为XML,反之亦然。
在两者之间进行转换时,将保留元素,属性,文本,注释,字符数据,处理指令,命名空间和XML声明。
JsonConvert有两个用于在JSON和XML之间转换的辅助方法。首先是SerializeXmlNode()。此方法采用XmlNode并将其序列化为JSON文本。
JsonConvert上的第二个辅助方法是DeserializeXmlNode()。此方法采用JSON文本并将其反序列化为XmlNode。
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"}}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'
}
]
}