c# - 在 Newtonsoft.Json 中将 CamelCaseText 转换为 CamelCaseNamingStrategy
问题描述
我最近升级到最新Newtonsoft.Json
版本12.0.2
。我之前运行的是旧版本 ( 11.0.2
),但介于两者之间,该StringEnumConverter.CamelCaseText
属性已被弃用。
根据StringEnumConverter 类,"StringEnumConverter.CamelCaseText is obsolete. Set StringEnumConverter.NamingStrategy with CamelCaseNamingStrategy instead."
因此,我在以下场景中进行了以下更改CamelCaseText == true
:
// Deprecated approach
new StringEnumConverter() { CamelCaseText = true };
// New approach
new StringEnumConverter() { NamingStrategy = new CamelCaseNamingStrategy() };
虽然这看起来很简单,但我不确定如何处理CamelCaseText == false
. 我已经阅读了CamelCaseNamingStrategy 类,但不知道在哪里禁用骆驼套管。我的猜测是我需要使用与CamelCaseNamingStrategy
诸如不同的命名策略类DefaultNamingStrategy
,但我不确定这个类的行为有什么不同。
谁能指出我解释差异的文档,和/或帮助我了解在这种情况下使用哪种命名策略?
// Deprecated approach
new StringEnumConverter() { CamelCaseText = false };
// New approach
new StringEnumConverter() { NamingStrategy = ? };
解决方案
您需要将其替换为 NamingStrategy,请改用以下代码:
new StringEnumConverter { NamingStrategy = new DefaultNamingStrategy() };
其他选择是:
CamelCaseNamingStrategy
, KebabCaseNamingStrategy
,SnakeCaseNamingStrategy
推荐阅读
- docker - 如何使用 Docker 列出可用的 repo 版本
- c# - 如何从嵌套列表中删除重复行?
- ios - 快速在动态表格视图单元格中使用 JSON 响应
- python - 等效于 str.format 的 Keras 后端函数
- wpf - 最简单的跨分辨率应用程序和自适应 UI 构建。不能在 WPF 中做到这一点
- c# - 在 app.config 中获取 ConfigurationElement 父级
- ocaml - OCaml- 评估函数时出错(此表达式的类型为 'a * 'b 但表达式应为 ('a * 'b) list# 类型)
- python - 加载 numpy 时本地脚本与内置模块冲突
- ssl - 如何找到 ssl / tls 主密钥
- go - 在 golang 中解析 yaml 时出错