将枚举显示为键值对JSON



我有一个ENUM,如下所示。我需要显示它的键值对。我已经展示了如何查看输出。

public enum CourseEnum
{
Science= 1, 
Math =2, 
English=3, 
History=4

}

输出

{
"1" : "Science",
"2" : "Math ",
"3" : "English",
"4" : "History"

}

首先可以将枚举强制转换为dictionary,然后将其转换为json:

var dict = Enum.GetValues(typeof(CourseEnum))
.Cast<CourseEnum>()
.ToDictionary(t => (int)t, t => t.ToString());

并且使用Newtonsoft:

var json=JsonConvert.SerializeObject(dict);

请参阅代码片段。根据您的需求进行调整:

foreach (var e in Enum.GetValues(typeof(CourseEnum)).Cast<CourseEnum>())
Console.WriteLine($""{(int)e}" : "{e}"");
// output:
"1" : "Science"
"2" : "Math"
"3" : "English"
"4" : "History"

你可以喜欢这个。

var data = Enum
.GetNames(typeof(CourseEnum))
.Select(name => new
{
Id = (int)Enum.Parse(typeof(CourseEnum), name),
Name = name
})
.ToArray();

最新更新