将枚举转换为 json 个对象

converting enums to json objects

我有两个枚举:

    enum myEnum
    {
        item_one = 1,
        item_two = 2,
    }

    enum myEnum2
    {
        item_four = 4,
        item_five = 5,
    } 

我想将它们表示为 Json 对象,这样我就可以在发出 http 请求时发送。目标是让它们看起来像:

{
  myEnum:{[
   {
     "code": 1, "definition": "item_one"
   },
   {
     "code": 2, "definition": "item_two"
   }
  ]},
  myEnum2:{[
   {
     "code": 4, "definition": "item_four"
   },
   {
     "code": 5, "definition": "item_five"
   }
  ]},
}

我会创建一个 in-between 映射对象,它可以通过像 Newtonsoft.JsonSystem.Text.Json:

这样的序列化器来放置
// Out mapping object
class EnumMapper {
  public int Code { get; set; }
  public string Definition { get; set; }
}

// Create the target output format
var result = new Dictionary<string, List<EnumMapper>>();

// Go over an enum and add it to the dictionary
// Should properly be made into a method so it easier to add more enums
foreach(var enumValue in Enum.GetValue(typeof(myEnum))) {
  // List containing all values of a single enum
  var enumValues = new List<EnumMapper>();
  enumValues.Add(new EnumMapper {
    Code = (int)enumValue,
    Description = Enum.GetName(enumValue)
  });

  // Add the enum values to the output dictionary
  result.Add("myEnum", enumValues)
}

// Serialize to JSON
var json = JsonConvert.Serialize(result)

上面的代码我没有测试过,但是你应该能从中掌握大概的思路。