C# 怎么将对象序列化为 JSON 字符串_C# 对象序列化 JSON 方法指南

小老鼠
发布: 2025-11-15 11:58:03
原创
696人浏览过
答案是使用System.Text.Json或Newtonsoft.Json将对象序列化为JSON字符串。首先介绍System.Text.Json,它是.NET Core 3.0+内置的高性能库,通过JsonSerializer.Serialize方法实现序列化,支持格式化输出和忽略空值等选项;然后介绍Newtonsoft.Json,适用于旧项目或需要更灵活功能的情况,通过JsonConvert.SerializeObject方法实现,并支持字段、命名控制和日期格式化等高级特性。新项目推荐使用System.Text.Json,旧项目可选用Newtonsoft.Json。

c# 怎么将对象序列化为 json 字符串_c# 对象序列化 json 方法指南

在 C# 中将对象序列化为 JSON 字符串,最常用的方法是使用 System.Text.Json 或第三方库如 Newtonsoft.Json(又称 Json.NET)。以下是两种主流方式的详细说明和示例。

使用 System.Text.Json(.NET Core 3.0+ 推荐)

System.Text.Json微软官方提供的高性能 JSON 操作库,内置在 .NET Core 3.0 及以上版本中,无需额外安装包。

基本用法:

  • 引入命名空间:using System.Text.Json;
  • 调用 JsonSerializer.Serialize() 方法将对象转为 JSON 字符串

示例代码:

using System;
using System.Text.Json;
<p>public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}</p><p>class Program
{
static void Main()
{
var person = new Person { Name = "张三", Age = 25 };
string jsonString = JsonSerializer.Serialize(person);
Console.WriteLine(jsonString); // 输出: {"Name":"张三","Age":25}
}
}</p>
登录后复制

可选:格式化输出(带缩进)

Find JSON Path Online
Find JSON Path Online

Easily find JSON paths within JSON objects using our intuitive Json Path Finder

Find JSON Path Online 30
查看详情 Find JSON Path Online
var options = new JsonSerializerOptions { WriteIndented = true };
string jsonString = JsonSerializer.Serialize(person, options);
登录后复制

使用 Newtonsoft.Json(兼容性更强)

如果你使用的是较老的 .NET Framework 项目,或需要更灵活的功能(如支持字段、复杂转换),推荐使用 Newtonsoft.Json

  • 通过 NuGet 安装包:Install-Package Newtonsoft.Json
  • 引入命名空间:using Newtonsoft.Json;
  • 使用 JsonConvert.SerializeObject() 方法

示例代码:

using System;
using Newtonsoft.Json;
<p>public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}</p><p>class Program
{
static void Main()
{
var person = new Person { Name = "李四", Age = 30 };
string jsonString = JsonConvert.SerializeObject(person);
Console.WriteLine(jsonString); // 输出: {"Name":"李四","Age":30}</p><pre class='brush:php;toolbar:false;'>    // 格式化输出
    string prettyJson = JsonConvert.SerializeObject(person, Formatting.Indented);
    Console.WriteLine(prettyJson);
}
登录后复制

}

处理常见场景的建议

  • 忽略空值属性: 使用 JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;(System.Text.Json)
  • 属性命名控制: 使用 [JsonPropertyName("name")][JsonProperty("name")] 自定义输出字段名
  • 私有成员/字段支持: Newtonsoft.Json 支持更广,可通过特性配置序列化非公共成员
  • 日期格式化: 可设置 JsonSerializerOptions.Encoder 或使用 DateTime.ToString("yyyy-MM-dd") 配合自定义转换器

基本上就这些。根据你的项目环境选择合适的方式即可。新项目优先用 System.Text.Json,旧项目或需高级功能可选 Newtonsoft.Json

以上就是C# 怎么将对象序列化为 JSON 字符串_C# 对象序列化 JSON 方法指南的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号