将 CamelCaseText 转换为 Newtonsoft.Json 中的 CamelCaseNamingStrategy

Blu*_*les 5 c# json json.net

我最近升级到了最新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() };
Run Code Online (Sandbox Code Playgroud)

虽然这看起来很简单,但我不确定如何处理CamelCaseText == false. 我已阅读CamelCaseNamingStrategy 类,但不知道在哪里禁用驼峰命名法。我的猜测是,我需要使用不同的命名策略类,例如CamelCaseNamingStrategyDefaultNamingStrategy但我不确定此类的行为有何不同。

有人可以向我指出解释差异的文档,和/或帮助我了解在这种情况下使用哪种命名策略吗?

// Deprecated approach
new StringEnumConverter() { CamelCaseText = false };

// New approach
new StringEnumConverter() { NamingStrategy = ? };
Run Code Online (Sandbox Code Playgroud)

dbc*_*dbc 3

您可以new StringEnumConverter()不修改任何属性。

默认情况下,StringEnumConverter不会enum以任何方式转换名称。文档中对此进行了解释,StringEnumConverter.CamelCaseText其中已过时:

获取或设置一个值,该值指示写入的枚举文本是否应采用驼峰式大小写。默认值为false

如果您觉得需要设置 的值,NamingStrategy可以将其设置为null默认值),或new DefaultNamingStrategy()。任一选择都将导致StringEnumConverter不修改enum名称。