jjzjj

StringEnumConverter

全部标签

c# - Json.NET StringEnumConverter 未按预期工作

我正在尝试将Json.NET与System.Net.Http.HttpClient一起使用以发送具有枚举属性的对象,但是枚举始终序列化为整数值而不是等效字符串。我已尝试按照此处的说明进行操作:http://james.newtonking.com/archive/2013/05/08/json-net-5-0-release-5-defaultsettings-and-extension-data通过将StringEnumConverter的实例添加到JsonSerializerSettings并尝试使用[JsonProperty(ItemConverterType=typeof(St

c# - 如何告诉 JSON.NET StringEnumConverter 取 DisplayName?

我有以下模型:publicenumStatus{[Display(Name="AwaitingApproval")]AwaitingApproval,Rejected,Accepted,}我在这样的模型中使用这个枚举:publicclassDocs{[Key]publicintId{get;set;}[JsonConverter(typeof(StringEnumConverter))]publicStatusStatus{get;set;}}现在一切正常;序列化程序返回与枚举等效的字符串。我的问题是如何告诉JSON.NET使用Display属性而不是string?

c# - 如何全局告诉 Json.Net 将 StringEnumConverter 应用于所有枚举

我想用json.net将枚举反序列化为它们的字符串表示形式,反之亦然。我能想出告诉框架应用其StringEnumConverter的唯一方法是像这样注释有问题的属性:[JsonConverter(typeof(StringEnumConverter))]publicvirtualMyEnumsMyEnum{get;set;}但是,在我的用例中,全局配置json.net会方便得多,这样所有枚举都可以使用StringEnumConverter进行(反)序列化,而无需额外的注释。有没有办法做到这一点,例如在自定义JsonSerializerSettings的帮助下?

c# - 如何使 JSON.NET StringEnumConverter 使用连字符分隔的大小写

我使用一个返回字符串值的API,如下所示:some-enum-value我尝试将这些值放在enum中,因为默认的StringEnumConverter没有做我想要的,即用一些额外的逻辑来装饰这个Converter.我如何确保这些值被正确反序列化?以下代码是我完成这项工作的尝试。然而这条线reader=newJsonTextReader(newStringReader(cleaned));由于base.ReadJson无法将字符串识别为JSON,因此破坏了整个过程。有没有更好的方法来做到这一点,而不必在StringEnumConverter中实现所有现有的逻辑?我该如何修正我的方法?pu

c# - 如何使 JSON.NET StringEnumConverter 使用连字符分隔的大小写

我使用一个返回字符串值的API,如下所示:some-enum-value我尝试将这些值放在enum中,因为默认的StringEnumConverter没有做我想要的,即用一些额外的逻辑来装饰这个Converter.我如何确保这些值被正确反序列化?以下代码是我完成这项工作的尝试。然而这条线reader=newJsonTextReader(newStringReader(cleaned));由于base.ReadJson无法将字符串识别为JSON,因此破坏了整个过程。有没有更好的方法来做到这一点,而不必在StringEnumConverter中实现所有现有的逻辑?我该如何修正我的方法?pu