[C#/.NET] 内网开发中如何使用 System.Text.Json 实现 JSON 解析(无需 NuGet)
在实际的企业开发环境中,尤其是内网隔离环境,开发人员经常面临无法使用 NuGet 安装外部包的问题。对于基于 .NET Framework 4.8 的应用,JSON 解析是一个常见的需求,但初始项目中往往未包含任何 JSON 处理相关的程序集。这时,了解如何手动添加系统扩展组件显得尤为关键。
本文将详细讲解如何在不依赖 NuGet 的情况下,引入 System.Text.Json
进行 JSON 数据的处理。
一、问题背景:无法使用 NuGet 获取 JSON 库
在 .NET Framework 4.8 环境下,很多开发者习惯使用 Newtonsoft.Json
来进行 JSON 解析。但在内网环境中,访问 NuGet 非常不便,甚至完全无法下载外部库。
这种情况下,开发者只能依赖系统自带的组件来完成相关功能,而 System.Text.Json
是一个性能优异的替代方案。
二、解决方案:使用“引用管理器”引入系统扩展组件
为解决 JSON 序列化/反序列化问题,我们可以利用 Visual Studio 自带的“引用管理器”,手动添加系统级的 JSON 处理程序集。
步骤如下:
在 Visual Studio 的“解决方案资源管理器”中,右击你的项目节点;
选择“添加” -> “引用”;
在弹出的“引用管理器”窗口中,左侧选择“程序集” -> “扩展”;
找到并勾选 System.Text.Json;
点击“确定”以完成添加。
此时,项目中就可以使用该程序集中的相关功能了。
三、使用示例:基本的 JSON 序列化和反序列化
引入 System.Text.Json
后,我们可以立即进行 JSON 数据处理。以下是一个简单示例:
using System;
using System.Text.Json;public class Person {public string Name { get; set; }public int Age { get; set; }
}class Program {static void Main() {// 创建对象并序列化var person = new Person { Name = "张三", Age = 30 };string json = JsonSerializer.Serialize(person);Console.WriteLine("JSON 输出: " + json);// 反序列化回对象var deserialized = JsonSerializer.Deserialize<Person>(json);Console.WriteLine($"姓名: {deserialized.Name}, 年龄: {deserialized.Age}");}
}
该示例展示了如何将对象转为 JSON 字符串,并从 JSON 字符串反解析回对象。
四、适用范围与注意事项
System.Text.Json
是 .NET Core 3.0+ 和 .NET Framework 4.7.2+ 的一部分,确保目标环境具备必要依赖;如果项目无法找到此程序集,建议安装 .NET Framework Developer Pack(包含最新 SDK 和参考程序集);
System.Text.Json
不完全兼容Newtonsoft.Json
,某些高级特性(如复杂数据类型、DataTable 处理)可能需额外实现。
总结
在内网开发场景下,无法访问 NuGet 时,仍可通过添加 System.Text.Json
程序集实现 JSON 数据的解析和生成。这种方式简便高效,适合绝大多数企业开发环境中的 JSON 操作需求。