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; }
}
相关推荐
guodingdingh2 小时前
软件开发工作问题总结0718
java·开发语言·数据库
寅时码3 小时前
React 之死·终章:一个 useRef,把闭包陷阱、依赖数组、漫天 rerender 全送走
前端·react.js·ai编程
不好听6133 小时前
HTML 事件监听机制:从 DOM Level 0 到 React 合成事件
前端·react.js·html
wordbaby4 小时前
为什么刷新页面就 404?聊聊 SPA 路由与 Nginx 的那点事
前端
咖啡八杯4 小时前
GoF设计模式——解释器模式
java·后端·spring·设计模式
不好听6134 小时前
React 核心概念:JSX、组件与数据驱动
前端·react.js
触底反弹4 小时前
🔥 React 零基础入门(中):500 行屎山代码到组件化的蜕变
前端·javascript·react.js
不好听6134 小时前
React vs Vue:两大前端框架技术选型深度对比
前端·vue.js·react.js
GuWenyue4 小时前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
GuWenyue4 小时前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法