使用Newtonsoft.Json可将XML转为JSON,先安装包,再用XmlDocument加载XML,通过JsonConvert.SerializeXmlNode转换,支持忽略根节点和数组识别。

在C#中将XML内容转换为JSON格式,可以使用.NET内置的 System.Xml 和第三方库如 Newtonsoft.Json(也叫Json.NET)来实现。下面介绍一种常见且简单的方法。
1. 安装 Newtonsoft.Json
你需要先通过 NuGet 安装 Newtonsoft.Json 库。可以在项目目录下运行以下命令:Install-Package Newtonsoft.Json或者使用 .NET CLI:
dotnet add package Newtonsoft.Json
2. 使用 XmlDocument 和 JsonConvert 转换 XML 到 JSON
示例代码如下:using System; using System.Xml; using Newtonsoft.Json;class Program { static void Main() { // 示例 XML 字符串 string xml = @"
"; 张三 30 北京 XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); // 转换为 JSON 字符串 string json = JsonConvert.SerializeXmlNode(doc); Console.WriteLine(json); }}输出结果为:
{ "person": { "name": "张三", "age": "30", "city": "北京" } }3. 注意事项与选项
如果想去掉外层包装对象(如 "person" 根节点),可以使用 WriteArrayAttribute 或调整序列化选项:string json = JsonConvert.SerializeXmlNode(doc, Newtonsoft.Json.Formatting.None, true);第二个参数控制格式化,第三个参数 true 表示忽略根元素(仅当根元素唯一时有效)。你也可以处理更复杂的 XML,比如包含属性、数组等:
这种结构会自动转换为 JSON 数组,前提是节点名相同。张三 李四 4. 总结
C# 中将 XML 转为 JSON 最简单的方式是:
- 用 XmlDocument 加载 XML 内容
- 用 JsonConvert.SerializeXmlNode() 转成 JSON 字符串
- 借助 Newtonsoft.Json 提供的强大序列化支持










