繁体   English   中英

json枚举默认值C#

[英]json enum default value c#

我正在尝试使用枚举的负载序列化一个大型结构,并且当未设置该结构中的属性时,我想获取要在json中序列化的第一个枚举字符串值,而不是将0作为默认值。

public enum YesNoUnknown
{
    [EnumName(Name = "unknown")]
    Unknown,

    [EnumName(Name = "yes")]
    Yes,

    [EnumName(Name = "no")]
    No
}

[JsonProperty(PropertyName = "property1", ItemConverterType = typeof(EnumAttributeConverter<YesNoUnknown>))]
public YesNoUnknown Property1 { get; set; }

我希望默认结果为:property1:“未知”,而不是:property1:0

提前致谢!

原来的问题是我应该使用Json EnumString属性而不是使用自定义属性。 因此,这些是我为使其生效而进行的更改:

public enum YesNoUnknown
{
    [EnumString("unknown")]
    Unknown,

    [EnumString("yes")]
    Yes,

    [EnumString("no")]
    No
}

    [JsonProperty(PropertyName = "property1")]
    [JsonConverter(typeof(EnumAttributeConverter<YesNoUnknown>))]
    public YesNoUnknown Property1 { get; set; }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM