C# 如何将xml内容转换为JSON格式

来源:这里教程网 时间:2026-02-21 17:29:01 作者:

在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;
<p>class Program
{
static void Main()
{
// 示例 XML 字符串
string xml = @"
<person>
<name>张三</name>
<age>30</age>
<city>北京</city>
</person>";</p><pre class="brush:php;toolbar:false;">    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,比如包含属性、数组等:

<users>
  <user id="1">
    <name>张三</name>
  </user>
  <user id="2">
    <name>李四</name>
  </user>
</users>
这种结构会自动转换为 JSON 数组,前提是节点名相同。

4. 总结

C# 中将 XML 转为 JSON 最简单的方式是: XmlDocument 加载 XML 内容 JsonConvert.SerializeXmlNode() 转成 JSON 字符串 借助 Newtonsoft.Json 提供的强大序列化支持 基本上就这些,不复杂但容易忽略细节,比如根节点处理和数组识别。

相关推荐