我希望使用驼峰式命名约定对我的类(class)进行序列化和反序列化。我知道我可以按照here所述使用JsonConvert.SerializeObject(object, settings)
重载:
var serializerSettings = new JsonSerializerSettings();
serializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
var json = JsonConvert.SerializeObject(product, serializerSettings);
有什么方法可以在类级别(通过属性)应用相同的配置,这样我就不必覆盖序列化设置了?
我可以写一个custom converter,但是对于这么简单的事情来说,这看起来像是一个过大的杀伤力。
最佳答案
如果您使用的是Json.NET 9.0.1或更高版本,则可以使用NamingStrategyType
上的JsonObjectAttribute
属性来实现所需的功能。如果需要将参数传递给NamingStrategy
的构造函数,请使用NamingStrategyParameters
属性指定它们。下面是一个如何使用驼峰案例命名策略指定类的示例。
[JsonObject(NamingStrategyType = typeof(CamelCaseNamingStrategy))]
public class Foo
{
public string Bar;
}