【问题标题】:json enum default value c#json枚举默认值c#
【发布时间】:2014-05-26 08:55:20
【问题描述】:

我正在尝试序列化具有大量枚举的大型结构,并且当未设置结构中的属性时,我想获取第一个枚举字符串值以在 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

提前致谢!

【问题讨论】:

标签: c# json enums default-value


【解决方案1】:

原来问题是我应该使用 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; }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 2015-08-22
    相关资源
    最近更新 更多