C#的JSON序列化是什么?如何使用System.Text.Json进行转换?


System.Text.Json是.NET Core 3.0+内置的高性能JSON库,用于C#对象与JSON字符串的相互转换。使用JsonSerializer.Serialize和Deserialize方法实现序列化与反序列化,支持通过JsonSerializerOptions配置命名策略、缩进、大小写敏感等选项,并可通过[JsonPropertyName]和[JsonIgnore]特性处理字段映射与忽略,适用于大多数现代C#开发场景。

c#的json序列化是什么?如何使用system.text.json进行转换?

JSON序列化是将C#对象转换为JSON字符串的过程,反序列化则是将JSON字符串还原为C#对象。在现代C#开发中,System.Text.Json 是官方推荐的高性能JSON处理库,从.NET Core 3.0开始内置,无需额外安装包(除非使用较新功能)。

基本用法:序列化与反序列化

使用 JsonSerializer.SerializeJsonSerializer.Deserialize 方法即可完成转换。

  • 序列化:把C#对象变成JSON字符串
  • 反序列化:把JSON字符串还原成C#对象

示例:

using System;
using System.Text.Json;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

// 序列化
var person = new Person { Name = "张三", Age = 25 };
string json = JsonSerializer.Serialize(person);
Console.WriteLine(json); // 输出: {"Name":"张三","Age":25}

// 反序列化
string inputJson = "{\"Name\":\"李四\",\"Age\":30}";
Person deserializedPerson = JsonSerializer.Deserialize<Person>(inputJson);
Console.WriteLine(deserializedPerson.Name); // 输出: 李四

常用选项配置

可以通过 JsonSerializerOptions 控制序列化行为,比如属性命名策略、缩进格式、日期处理等。

常见设置:

秒哒 秒哒

秒哒-不用代码就能实现任意想法

秒哒 535 查看详情 秒哒
  • PropertyNamingPolicy:控制属性名格式,如转为camelCase
  • WriteIndented:输出带缩进的JSON,便于阅读
  • PropertyNameCaseInsensitive:反序列化时忽略大小写

示例:

var options = new JsonSerializerOptions
{
    PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
    WriteIndented = true
};

string json = JsonSerializer.Serialize(person, options);

var readOptions = new JsonSerializerOptions
{
    PropertyNameCaseInsensitive = true
};
Person result = JsonSerializer.Deserialize<Person>(inputJson, readOptions);

处理复杂类型和特性

对于字段名不匹配或需要忽略的属性,可以使用特性(Attribute)进行标记。

  • [JsonPropertyName]:指定JSON中的字段名
  • [JsonIgnore]:序列化时忽略该属性

示例:

public class Product
{
    [JsonPropertyName("product_id")]
    public string Id { get; set; }

    [JsonIgnore]
    public decimal Cost { get; set; }

    public string Name { get; set; }
}

这样序列化时,Id会变成"product_id",Cost则不会出现在JSON中。

基本上就这些。System.Text.Json 使用简单、性能好,适合大多数场景。注意类必须有公共属性和构造函数才能正确序列化。

以上就是C#的JSON序列化是什么?如何使用System.Text.Json进行转换?的详细内容,更多请关注其它相关文章!


# 字段名  # 皋兰外贸网站建设  # 贷款金融知识网站建设  # 网站自动推广方法  # 网站免费建设游戏推荐  # 萍乡网站建设厂家名单  # 吉林外贸网站建设工厂  # 网站推广有哪几部分组成  # 推荐的图片优化网站  # 汕头国内网站建设  # 运城网站怎么建设  # 出现在  # 则是  # 就能  # js  # 李四  # 化与  # 如何将  # 高性能  # 如何使用  # 序列化  # .net  # cos  # c#开发  # json处理  # c#  # json 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: J*aScript类型数组_TypedArray使用  支付宝网页版在线入口 支付宝官网电脑登录入口  《雷电模拟器》自动点击设置方法  抖音手机分身两个账号怎么切换?分身两个系统是一样的吗?  Golang如何测试结构体方法_Golang reflect方法测试与调用技巧  批改网网页版登录 批改网电脑版学生登录入口  包子漫画在线观看入口 包子漫画网正版全集链接  如何高效地基于键列值映射DataFrame中的多个列  PySimpleGUI中实现键盘按键与按钮事件绑定教程  Dash应用中自定义HTML页面标题与网站图标(F*icon)的实用指南  漫蛙manwa官网浏览入口_漫蛙漫画网页版访问链接  《暗黑破坏神4》国服回归送狂欢礼包 价值6916元  mysql如何管理数据库账户_mysql数据库账户管理技巧  《金山词霸》语音翻译方法  Win10显卡驱动安装失败怎么办 Win10使用DDU彻底卸载驱动【解决】  Yandex世界探索 最新官方免登录入口全知道  抖音火山版注销账号抖音会注销吗 抖音火山版与抖音账号注销关系  《画加》约稿流程  优化响应式标题底部边框:CSS实现技巧与最佳实践  《异星探险家》古怪的物品作用介绍  Golang如何操作指针参数_Go pointer参数传递规则  悟空浏览器网页版在线工具 悟空浏览器网页版在线平台入口  GBA模拟器手柄按键设置  如何查询个人病历记录  汽车之家网页版免费登录_汽车之家官网首页直接进入  win11怎么启用或禁用休眠 Win11 powercfg命令管理休眠文件【技巧】  CSS布局中意外顶部空白的调试与解决:深入理解padding-top  Windows 11怎么删除恢复分区_Windows 11使用Diskpart命令强行删除分区  繁花漫画使用教程  微信朋友圈怎么设置三天可见 微信朋友圈设置指定天数可见步骤【教程】  《飞猪旅行》购买汽车票方法  《浙里办》电子发票开具方法  海棠书屋官方在线书籍入口 海棠书屋文学作品浏览官网链接  Highcharts雷达图轴线交点数值标注指南  蜻蜓FM如何设置移动流量播放  PDF如何批量加注释_PDF多文件批注高亮操作教程  firefox火狐浏览器最新官网主页_ firefox火狐浏览器平台入口直达官方链接  虫虫助手如何更新游戏  PHP中实现JSON数据数组分页的教程  steam缓存文件在哪儿_steam缓存文件的路径查找方法与结构说明  《长生:天机降世》火塔小怪大全  在Django中动态检查模型关联:一种灵活的解决方案  Win11如何分屏操作_Win11多窗口分屏技巧  《火花chat》搜索好友方法  电子白板帮助菜单使用指南  《全民k歌》网页版最新登录入口一览  Go App Engine 项目结构与包管理深度指南  优化CSS动画与J*aScript定时器协同:构建稳定Toast提示  韩小圈网页版PC端入口 韩小圈网页版官方网站入口  如何在mysql中比较InnoDB和MyISAM区别 

 2025-12-12

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.