我们在 0.22.0 中进行了更改,我认为是,默认情况下使用默认序列化器 camelCase。
JSON.NET 默认情况下是 pascal case,我认为我们应该强制它默认为 camelCase 并允许用户订购它。
目前要实现camelCasing,我们必须这样做:
public class CustomJsonSerializer : JsonSerializer
{
public CustomJsonSerializer()
{
this.ContractResolver = new CamelCasePropertyNamesContractResolver();
}
}
并注册类型。
人们应该这样做以禁用camelCasing。
想法?
默认情况下,camelCasing +100。
我也+100 :grin:
我认为所有的序列化程序都应该遵循静态的JsonSettings.RetainCasing
(以及JsonSettings.ISO8601DateFormat
)。 IMO 最好也将RetainCasing
的名称更改为CamelCalse
,例如通过添加另一个属性并从RetainCasing
调用它:
[Obsolete("This name is ambiguous, and the property will be removed in a future version. Use CamelCase instead.")]
public static bool RetainCasing
{
get { return !CamelCase; }
set { CamelCase = !value; }
}
public static bool CamelCase { get; set; }
:+1: 默认情况下也用于camelCasing 和ISO8601DateFormat。
:+1:
:shipit: :shipit: :shipit:
:+1:
我同意,尤其是@khellang所说的。 @PureKrome花了一个小时左右的命名(但没有意识到这并没有扩展到 Json.Net)。 RetainCasing 设置为 false 在默认和 Json.Net 之间的行为不同,我认为这是触发点,希望通过 RetainCasing(或更优选 CamelCasing)静态设置看到相同但可覆盖的行为。
我正在修复南希需要修复的 4 件事情中的一件,以阻止你们(@purekrome)抱怨。
如果其他人想拿起这个,他们可以。 共识是我们应该修复它。
我同意@khellang 的观点,即所有 JSON 序列化程序的设置应该是 1 个位置。
最有用的评论
我也+100 :grin: