在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 数组,前提是节点名相同。