我想用json反序列化枚举到它们的字符串表示,反之亦然。我能想到的告诉框架应用它的StringEnumConverter
的唯一方法是像这样注解有问题的属性:
[JsonConverter(typeof(StringEnumConverter))]
public virtual MyEnums MyEnum { get; set; }
然而,在我的用例中,配置www.example会方便得多 www.example.com 全局化,这样所有枚举都可以使用StringEnumConverter
进行(解)序列化,而不需要额外的注解。
有没有办法做到这一点,E。例如,在自定义JsonSerializerSettings
的帮助下?
6条答案
按热度按时间pbgvytdp1#
将
StringEnumConverter
添加到JsonSerializerSettings
Converters集合。文件:Serialize with JsonConverters
如果你想让序列化器使用camelCasing,你也可以设置这个:
这将把
SomeValue
序列化为someValue
。fkaflof62#
其他答案适用于ASP。NET,但是如果你想设置这些设置,以便在任何上下文中调用JsonConvert,你可以这样做:
(See http://james.newtonking.com/archive/2013/05/08/json-net-5-0-release-5-defaultsettings-and-extension-data)
k2arahey3#
在您的全球。asax.cs添加
dphi5xsq4#
对于ASP.NET Core 2,请执行以下操作:
请注意,这不是
services.AddJsonOptions(...)
,它必须标记到MVC上,因为您正在为MVC创建设置。jm2pwxwz5#
以前的答案在版本12中已经过时。0.1.新的方法是使用NamingStrategy。https://www.newtonsoft.com/json/help/html/NamingStrategyCamelCase.htm
7y4bm7vi6#
安装 * 旋转扣。AspNetCore.Newtonsoft* 包。