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' } ] }