【发布时间】:2022-04-16 05:06:42
【问题描述】:
为什么我的序列化 JSON 最终是
{"Gender":1,"Dictionary":{"Male":100,"Female":200}}
即为什么枚举序列化为它们的值,但是当它们形成字典时,它们被转换为它们的键?
如何使它们成为字典中的整数,为什么这不是默认行为?
我希望得到以下输出
{"Gender":1,"Dictionary":{"0":100,"1":200}}
我的代码:
public void foo()
{
var testClass = new TestClass();
testClass.Gender = Gender.Female;
testClass.Dictionary.Add(Gender.Male, 100);
testClass.Dictionary.Add(Gender.Female, 200);
var serializeObject = JsonConvert.SerializeObject(testClass);
// serializeObject == {"Gender":1,"Dictionary":{"Male":100,"Female":200}}
}
public enum Gender
{
Male = 0,
Female = 1
}
public class TestClass
{
public Gender Gender { get; set; }
public IDictionary<Gender, int> Dictionary { get; set; }
public TestClass()
{
this.Dictionary = new Dictionary<Gender, int>();
}
}
}
【问题讨论】: