C# 如何使用 System.Text.Json 启用不区分大小写的属性名称

本文将介绍如何使用 System.Text.Json 命名空间启用不区分大小写的属性名称匹配。

不区分大小写的属性匹配

默认情况下,反序列化会查找 JSON 与目标对象属性之间区分大小写的属性名称匹配。 若要更改该行为,请将 JsonSerializerOptions.PropertyNameCaseInsensitive 设置为 true:

备注

Web 默认值为不区分大小写。

C#复制

复制代码
var options = new JsonSerializerOptions
{
    PropertyNameCaseInsensitive = true
};
var weatherForecast = JsonSerializer.Deserialize<WeatherForecast>(jsonString, options);

下面是具有 camel 大小写属性名称的示例 JSON。 它可以反序列化为具有帕斯卡拼写法属性名称的以下类型。

JSON复制

复制代码
{
  "date": "2019-08-01T00:00:00-07:00",
  "temperatureCelsius": 25,
  "summary": "Hot",
}

C#复制

复制代码
public class WeatherForecast
{
    public DateTimeOffset Date { get; set; }
    public int TemperatureCelsius { get; set; }
    public string? Summary { get; set; }
}
相关推荐
枣把儿5 分钟前
开源!全套公众号写作、封面、发布自动化工具包!
前端·命令行
陶醉的松鼠9 分钟前
前端容易忽略的 debugger 调试技巧
前端
我命由我123459 分钟前
6-3.Python 异常处理 - 异常处理进阶(else 块与 finally 块、异常传递、自定义异常)
开发语言·前端·数据库·后端·python·学习·java-ee
龙九山13 分钟前
我的 10 个 npm 插件,差点被 AI 判了死刑
前端·开源
深入云栈15 分钟前
Netty 4.2.x 源码深度解析 (二十一):Pipeline 事件传播 —— Inbound 与 Outbound 的双向流转
java·后端·架构
deli00716 分钟前
键盘按键测试:按下就点亮,keydown 延迟精确到 1 毫秒
前端
Amos_Web23 分钟前
通过 Rspack 源码学 Rust(三):用 Default 与 std::mem::take 取出字段所有权
前端
爱敲代码的TOM29 分钟前
10.27 易购软件 Java开发线下一面
java·开发语言
yuzhiboyouye30 分钟前
String、StringBuilder、StringBuffer 区别(面试题)
java
MetWeave31 分钟前
风怎么流动:色斑告诉你多大,告诉不了你去哪
前端·数据可视化