Serialize C# Enum Definition to Json

后端 未结 2 1212
误落风尘
误落风尘 2021-02-18 14:43

Given the following in C#:

[Flags]
public enum MyFlags {
  None = 0,
  First = 1 << 0,
  Second = 1 << 1,
  Third = 1 << 2,
  Fourth = 1 <&l         


        
2条回答
  •  生来不讨喜
    2021-02-18 15:13

    public static class EnumExtensions
    {
        public static string EnumToJson(this Type type)
        {
            if (!type.IsEnum)
                throw new InvalidOperationException("enum expected");
    
            var results =
                Enum.GetValues(type).Cast()
                    .ToDictionary(enumValue => enumValue.ToString(), enumValue => (int) enumValue);
    
    
            return string.Format("{{ \"{0}\" : {1} }}", type.Name, Newtonsoft.Json.JsonConvert.SerializeObject(results));
    
        }
    }
    
    
    

    Using a dictionary of to do the heavy lifting. Then using Newtonsoft's json convert to convert that to json. I just had to do a bit of wrapping to add the type name on.

    提交回复
    热议问题