全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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

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(inputJson);
Console.WriteLine(deserializedPerson.Name); // 输出: 李四

常用选项配置

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

常见设置:

  • 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(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 使用简单、性能好,适合大多数场景。注意类必须有公共属性和构造函数才能正确序列化。


# js  # json  # c#  # json处理  # c#开发  # cos  # .net  # 构造函数  # 字符串  # Attribute  # 对象  # 序列化  # 高性能  # 化与  # 李四  # 字段名  # 则是  # 出现在  # 适用于  # 可以通过  # 可以使用 


相关文章: 如何快速重置建站主机并恢复默认配置?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  家庭建站与云服务器建站,如何选择更优?  如何在建站宝盒中设置产品搜索功能?  南宁网站建设制作定制,南宁网站建设可以定制吗?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  建站中国官网:模板定制+SEO优化+建站流程一站式指南  建站之星导航如何优化提升用户体验?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  Android自定义控件实现温度旋转按钮效果  如何在IIS管理器中快速创建并配置网站?  建站VPS配置与SEO优化指南:关键词排名提升策略  ,制作一个手机app网站要多少钱?  如何通过wdcp面板快速创建网站?  如何快速生成ASP一键建站模板并优化安全性?  如何选择靠谱的建站公司加盟品牌?  如何通过建站之星自助学习解决操作问题?  如何在企业微信快速生成手机电脑官网?  如何在Golang中引入测试模块_Golang测试包导入与使用实践  宝塔建站无法访问?如何排查配置与端口问题?  如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  香港服务器租用每月最低只需15元?  Swift中switch语句区间和元组模式匹配  如何通过FTP服务器快速搭建网站?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  网站制作公司排行榜,抖音怎样做个人官方网站  零基础网站服务器架设实战:轻量应用与域名解析配置指南  制作网站怎么制作,*游戏网站怎么搭建?  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  代刷网站制作软件,别人代刷火车票靠谱吗?  如何快速生成高效建站系统源代码?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  建站主机空间推荐 高性价比配置与快速部署方案解析  如何在Windows 2008云服务器安全搭建网站?  ,怎么用自己头像做动态表情包?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  如何选择适合PHP云建站的开源框架?  在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?  如何批量查询域名的建站时间记录?  如何用5美元大硬盘VPS安全高效搭建个人网站?  网站网页制作专业公司,怎样制作自己的网页?  制作电商网页,电商供应链怎么做?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  贸易公司网站制作流程,出口贸易网站设计怎么做?  如何用景安虚拟主机手机版绑定域名建站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。