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

Ser*_*pin 9 c# serialization json json.net

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

var serializerSettings = new JsonSerializerSettings();
serializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
var json = JsonConvert.SerializeObject(product, serializerSettings);
Run Code Online (Sandbox Code Playgroud)

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

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

Tyl*_*ley 17

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

[JsonObject(NamingStrategyType = typeof(CamelCaseNamingStrategy))]
public class Foo
{
    public string Bar;
}
Run Code Online (Sandbox Code Playgroud)