最推荐使用System.Text.Json(.NET Core 3.0+内置),性能好、安全、轻量;老项目或需字段支持、循环引用等可选Newtonsoft.Json。
在C#中,对象与JSON互转最常用、最推荐的方式是使用 System.Text.Json(.NET Core 3.0+ 内置,无需额外安装),它性能好、安全、轻量。如果项目还在用 .NET Framework 或需要更多功能(比如支持字段、循环引用、自定义转换器更灵活),也可以用 Newtonsoft.Json(即 Json.NET)。
这是现代 C# 的首选方式,简单高效:
示例:
var person = new { Name = "张三", Age = 28 };
string json = JsonSerializer.Serialize(person, new JsonSerializerOptions
{
WriteIndented = true,
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull
});输出:
{
"Name": "张三",
"Age": 28
}
把 JSON 字符串还原成 C# 对象(需有匹配的类型或用匿名/动态类型):
示例:
string json = @"{""name"":""李四"",""age"":30}";
var person = JsonSerializer.Deserialize(json, new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
}); 需通过 NuGet 安装 Newtonsoft.Json 包。它的 API 更灵活,历史生态更广:
示例:
var user = new User { UserName = "admin", CreatedAt = DateTime.Now };
string json = JsonConvert.SerializeObject(user, Formatting.Indented);无论用哪个库,都需要注意:

基本上就这些。选 System.Text.Json 是新项目的标准做法;已有项目重度依赖 Newtonsoft,也没必要强行替换。