簡體   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