首页 > 解决方案 > 在 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 = ? };

标签: c#jsonjson.net

解决方案


您需要将其替换为 NamingStrategy,请改用以下代码:

new StringEnumConverter { NamingStrategy = new DefaultNamingStrategy() };

其他选择是: CamelCaseNamingStrategy, KebabCaseNamingStrategy,SnakeCaseNamingStrategy


推荐阅读