var result = new JArray(); foreach (var val in Enum.GetValues(e)) {
var name = Enum.GetName(e, val); var field = e.GetField(name); var desc = (DescriptionAttribute)field.GetCustomAttribute(typeof(DescriptionAttribute)); var id = (int)val; var obj = new JObject(); if (desc != null) obj["name"] = desc.Description; else obj["name"] = name; obj["id"] = id;