황현동 블로그 개발, 인생, 유우머

170112 json serialize 할때 enum을 string 으로 변환

Tags:




  • 이게 필요해서 만들까 했는데 역시 필요한건 미리 누군가가 만들어 놓았음.
  • StringEnumConverter 가 이미 만들어져 있음.
  • 바로 코드부터 보면…
[TestClass]
public class SomeTests
{
    public enum Genders
    {
        Male,
        Female,
    }

    public class Person
    {
        public int Age { get; set; }
        public string Name { get; set; }

        public Genders Gender { get; set; }

        [JsonConverter(typeof(StringEnumConverter))]
        public Genders Gender2 { get; set; }
    }
    
    [TestMethod]
    public async void StringEnumConverter_test()
    {
        var p = new Person
        {
            Name = "황현동",
            Age = 37,
            Gender = Genders.Male,
            Gender2 = Genders.Male,
        };

        var pStr = JsonConvert.SerializeObject(p, Formatting.Indented);
        Trace.TraceInformation($"pStr : {pStr}");
    }
vstest.executionengine.x86.exe Information: 0 : pStr : {
  "Age": 37,
  "Name": "황현동",
  "Gender": 0,
  "Gender2": "Male"
}