【问题标题】:how to convert Enum definition to JavaScript object (json)如何将枚举定义转换为 JavaScript 对象(json)
【发布时间】:2019-09-30 11:26:13
【问题描述】:

我也检查了这个post,但它给了我相同的结果。 枚举定义:

    public enum myEnum
        {
            variable1 = 1,
            variable2 = 25,
            variable3 = 35
        }

这是我尝试过的:

var myJsObject= @Html.Raw(JsonConvert.SerializeObject(Enum.GetValues(typeof(myEnum)), new Newtonsoft.Json.Converters.StringEnumConverter()));

这就是它返回的内容:

["variable1","variable2","variable3"]

预期结果:

{"1":"variable1","25":"variable2","35":"variable3",}

我怎样才能做到这一点?

【问题讨论】:

    标签: .net jsonserializer


    【解决方案1】:

    你可以这样做......

       public enum myEnum
       {
          variable1 = 1,
          variable2 = 25,
          variable3 = 35
       }
    
        static Dictionary<int,string> EnumToDictionary<T>() where T : struct, IConvertible
        {
            if (!typeof(T).IsEnum)
            {
                throw new ArgumentException("T must be an enum type");
            }
            var dictionary = Enum.GetValues(typeof(T))
                .Cast<T>()
                .ToDictionary( e=>  Convert.ToInt32(e), e => e.ToString());
            return dictionary;
        }
    

    使用...

    var dictionary =  EnumToDictionary<tEnum>();
    var jsonResult = Newtonsoft.Json.JsonConvert.SerializeObject(dictionary);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-01
      • 2012-08-12
      • 2014-02-24
      • 2015-10-27
      • 1970-01-01
      • 1970-01-01
      • 2016-07-13
      • 2016-12-26
      相关资源
      最近更新 更多