Can't get enum to convert to json properly using Json.NET

前端 未结 3 517
旧巷少年郎
旧巷少年郎 2020-12-06 04:52

I have an enum:

public enum Animal 
{ 
    Dog, 
    Cat, 
    BlackBear 
}

I need to send it to a third-party API. This API requires that

3条回答
  •  一整个雨季
    2020-12-06 05:29

    You don't need to write your own converter. Json.NET's StringEnumConverter will read the EnumMember attribute. If you change your enum to this, it will serialize from and to the values you want.

    [JsonConverter(typeof(StringEnumConverter))]
    public enum Animals 
    {
        [EnumMember(Value = "dog")]
        Dog, 
        [EnumMember(Value = "cat")]
        Cat, 
        [EnumMember(Value = "black_bear")]
        BlackBear 
    }
    

    (As a minor note, since Animals isn't a flags enum, it should be singular: Animal. You should consider changing it to this.)

提交回复
热议问题