Json.NET은 XmlNodeConverter를 사용하여 JSON을 XML로 또는 그 반대로 변환하는 것을 지원합니다.
요소, 속성, 텍스트, 주석, 문자 데이터, 처리 명령, 네임스페이스 및 XML 선언은 둘 사이를 변환할 때 모두 보존됩니다.
XmlNode 직렬화
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'
}
]
}