在类级别配置Json.NET序列化设置

我希望使用驼峰式命名约定对我的类进行序列化和反序列化。 我知道我可以使用JsonConvert.SerializeObject(object, settings)重载,如下所述:

 var serializerSettings = new JsonSerializerSettings(); serializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); var json = JsonConvert.SerializeObject(product, serializerSettings); 

有没有办法在类级别(通过属性)应用相同的配置,以便我不需要覆盖序列化设置?

我可以编写一个自定义转换器,但这对于这么简单的事情看起来有点过分。

如果您使用的是Json.NET 9.0.1或更高版本,则可以使用JsonObjectAttribute上的NamingStrategyType属性来实现您的目标。 如果需要将参数传递给NamingStrategy的构造函数,请使用NamingStrategyParameters属性指定它们。 下面是如何使用驼峰式命名策略指定类的示例。

 [JsonObject(NamingStrategyType = typeof(CamelCaseNamingStrategy))] public class Foo { public string Bar; }