新闻中心
C#怎么将对象序列化为JSON System.Text.Json使用方法
System.Text.Json 序列化核心是 JsonSerializer.Serialize(),.NET Core 3.0+ 内置;支持匿名类型、POCO、集合等,默认驼峰命名;通过 JsonSerializerOptions 可配置命名策略、null 处理、缩进等;支持流式写入和 Utf8JsonWriter;注意字段默认不序列化、日期格式为 ISO 8601、不支持循环引用(需 ReferenceHandler.Preserve)、字典 key 必须为 string。

用 System.Text.Json 将对象序列化为 JSON 很简单,核心是 JsonSerializer.Serialize() 方法,不需要额外安装包(.NET Core 3.0+ 和 .NET 5+ 内置)。
基础序列化:一行搞定
最常用场景:把一个普通类实例转成 JSON 字符串。
示例:
晓象AI资讯阅读神器
晓象-AI时代的资讯阅读神器
72
查看详情
var person = new { Name = "张三", Age = 28 };
string json = JsonSerializer.Serialize(person);
// 输出:{"Name":"张三","Age":28}
支持匿名类型、POCO 类、集合、基本类型等。默认使用驼峰命名(如 FirstName → firstName),不加配置就自动优化。
控制序列化行为:用 JsonSerializerOptions
需要自定义格式时(比如保留 Pascal 命名、处理循环引用、忽略 null 值),传入 JsonSerializerOptions 实例。
常见设置:
-
保持属性原名:设置
PropertyNamingPolicy = null -
忽略 null 值:设置
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull -
缩进输出(便于调试):设置
WriteIndented = true -
允许注释和尾逗号(仅读取时有用):设置
ReadCommentHandling = JsonCommentHandling.Skip

示例:
var options = new JsonSerializerOptions
{
WriteIndented = true,
PropertyNamingPolicy = null,
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull
};
string json = JsonSerializer.Serialize(person, options);
序列化到流或文件,避免内存压力
大数据量或大对象时,别全加载到字符串里,直接写入 Stream 或文件更高效。
示例(写入文件):
using var stream = File.Create("data.json");
JsonSerializer.Serialize(stream, person, options);
也支持 Utf8JsonWriter 手动控制写入,适合构建动态 JSON 或高性能场景。
注意常见坑
这些情况容易报错或结果不符合预期:
-
不支持字段(field)序列化:只序列化 public 属性(property),字段需手动加
[JsonPropertyName]并启用IncludeFields = true -
日期格式默认是 ISO 8601(如
"2025-05-10T08:30:00Z"),要改格式需用Converters(如JsonStringEnumConverter或自定义JsonConverter<datetime></datetime>) -
不支持循环引用:对象 A 引用 B,B 又引用 A → 默认抛异常;可配合
ReferenceHandler.Preserve解决(.NET 6+) -
字典 key 必须是 string:非 string key(如
Dictionary<int string></int>)会失败,建议先转成Dictionary<string string></string>或用自定义 converter
基本上就这些。
以上就是C#怎么将对象序列化为JSON System.Text.Json使用方法的详细内容,更多请关注其它相关文章!
# 中文网
# 卢龙新型网站建设
# 网文小说关键词排名推荐
# 西工网站制作推广
# 淘特推广营销模式
# 网站建设优化推广费用
# 招聘类网站怎么做优化
# 山东网站建设年检材料
# 网站建设小书签的图标
# 如何做企业网站优化
# 随州网站建设批发价
# 解决问题
# 很简单
# js
# 相关文章
# 不需要
# 如何将
# 转成
# 不支持
# 自定义
# 序列化
# .net
# c#
# stream
# 大数据
# json
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
妖精动漫免费平台 妖精动漫官网资源观看网址
html网页设计源代码怎么运行_运行html网页设计源代码步骤【指南】
夸克浏览器网页版最新地址 夸克浏览器官方入口合集
如何在J*a中使用Locale处理多语言环境
夸克浏览器桌面版同步不了书签怎么处理 夸克浏览器跨设备同步异常解决方案
J*aScript 字符串标签转换:使用正则表达式高效替换
fishbowl官网免费版 fishbowl养鱼网站入口
word邮件合并后日期格式不对怎么改_Word邮件合并日期格式修改方法
QQ邮箱登录平台入口 QQ邮箱网页版邮箱官方入口
如何高效处理PHP中的Excel数据导入导出?PortPHP/Spreadsheet助你轻松搞定!
格力空气能E5故障代码是什么情况_格力空气能E5代码解析与应对措施
PySpark中从现有列右侧提取可变长度字符创建新列的教程
解决Tabulator日期时间排序问题的专业指南
百度网盘网页版入口 百度网盘网页版官方登录网址
J*a递归快速排序中静态变量导致数据累积问题的解决方案
在Pyomo中实现基于变量的条件约束:Big-M方法详解
解决Python单元测试中Mock异常方法调用计数为零的问题
Excel中VLOOKUP的第四个参数是干什么用的_Excel VLOOKUP第四参数作用解析
《刺客信条4:黑旗》重制版新细节曝光:无缝加载 地图更细致!
J*a里如何实现线程安全的懒加载单例_懒加载单例实现方法解析
使用 Pandas 高效处理 .dat 文件:数据清洗与数值计算实战
小米14应用无法联网原因分析_小米14网络权限修复
c++如何实现一个简单的ECS框架_c++数据驱动设计与游戏开发
搜狗浏览器如何使用密码生成器创建强密码 搜狗浏览器内置密码安全工具
高德地图沿途添加点失败如何解决 高德多点规划方法
如何在 Excel Online 和 Google 表格中更改日期格式
SteamMachine定价或为699美元 大家想入手吗?
sublime怎么预览Markdown渲染效果_Markdown Preview插件 for sublime教程
反效果?《战地6》免费试玩开启后玩家数不升反降
必由学官方网站入口 必由学学生教师共用登录通道
c++中的const_cast和reinterpret_cast怎么用_c++四种类型转换
PostgreSQL海量数据高效导入策略:Python与Django实践指南
vivo浏览器怎么扫描二维码 vivo浏览器内置扫一扫功能使用方法
GemBox Document HTML转PDF垂直文本渲染问题及解决方案
必由学在线入口 必由学网页版快速登录入口
AO3官网镜像链接 Archive of Our Own同人文在线浏览
12306选座怎么选到特殊座位_12306特殊座位选择注意事项
在J*a中如何开发在线活动报名与管理系统_活动报名管理项目实战解析
PS5 Pro有点优势但不多! 《燕云十六声》PS5平台与PC性能画面对比
批改网学生版PC登录 批改网官网登录系统入口
Win11怎么安装Linux子系统 Win11 WSL2安装Ubuntu及环境配置指南
Promise错误处理:在catch后终止链式then执行的策略
KFC套餐升级怎么获取优惠代码_KFC套餐升级活动与优惠代码获取方法
Android Studio计算器C键功能异常排查与修复教程
Animex动漫社网入口地址 Animex动漫社网正版在线入口
Golang如何使用net/url解析URL_Golang URL解析与处理方法
J*a里如何使用N*igableMap进行导航操作_可导航Map操作技巧解析
C++的std::forward_list怎么用_C++ STL中单向链表容器的特点与应用
2025AO3夸克浏览器通道_AO3手机HTTPS安全入口分享
J*aScript实现单选按钮与关联输入框的联动禁用教程


2025-12-16
浏览次数:次
返回列表