json枚举默认值c#

时间:2014-05-26 08:55:21

标签: c# json enums default-value

我正在尝试使用加载的枚举序列化一个大型结构,并且当未设置结构中的属性时,我想获得第一个在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:“unknown”而不是:property1:0

提前致谢!

1 个答案:

答案 0 :(得分: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; }