我希望使用驼峰式命名约定对我的班级进行序列化和反序列化。我知道我可以使用此处所述的JsonConvert.SerializeObject(object,settings)重载:
JsonConvert.SerializeObject(object,settings)
var serializerSettings = new JsonSerializerSettings(); serializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); var json = JsonConvert.SerializeObject(product, serializerSettings);
有什么办法可以通过类属性(通过属性)应用相同的配置,这样我就不需要覆盖序列化设置了?
我可以编写一个自定义转换器,但是对于这样简单的事情来说,这似乎有些过头了。
如果您使用的是Json.NET9.0.1或更高版本,则可以使用上的NamingStrategyType属性JsonObjectAttribute来实现所需的功能。如果您需要将参数传递给NamingStrategy的构造函数,请使用NamingStrategyParameters属性指定它们。下面是一个如何使用驼峰式命名策略指定类的示例。
NamingStrategyType
JsonObjectAttribute
NamingStrategy
NamingStrategyParameters
[JsonObject(NamingStrategyType = typeof(CamelCaseNamingStrategy))] public class Foo { public string Bar; }