一尘不染

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

json

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

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

有什么办法可以通过类属性(通过属性)应用相同的配置,这样我就不需要覆盖序列化设置了?

我可以编写一个自定义转换器,但是对于这样简单的事情来说,这似乎有些过头了。


阅读 209

收藏
2020-07-27

共1个答案

一尘不染

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

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