[C#] Json.NET 으로 XML을 Json으로 Serialize하는 방법

 요즘 서로다른 앱 혹은 서비스간 메세지를 주고받을때 복잡한 구조의 데이터는 대부분 JSON으로 변환해서 주로 주고 받습니다. 물론, XML을 사용하는 곳도 아직은 많을겁니다. 그래서 이 XML로 전달받은 데이터를 JSON으로 그대로 직렬화 해서 보관하거나 다른 노드로 전송해야하는 경우들이 있습니다.

 이런 경우 Json.NET을 사용하면 아주 간단하게 method 호출만으로 직렬화 할 수 있습니다.

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 json = JsonConvert.SerializeXmlNode(doc);

Console.WriteLine(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"
//       }
//     ]
//   }
// }

원문: https://www.newtonsoft.com/json/help/html/ConvertXmlToJson.htm