보통 JSON Serialization 후 텍스트 파일 형태로 저장하거나 DB에 저장하거나 하는데, enum 값이 숫자 형태로 저장되어서 JSON 문자열을 열어볼 때 readbility가 떨어집니다. 그래서 enum 타입 변수의 값이 문자열 형태로 저장 하는 경우가 많은데요, 그럴 때 아래와 같이 attribute를 특정 멤버 변수에 선언해주면 됩니다.
    using Newtonsoft.Json;
    using Newtonsoft.Json.Converters;
    
    public enum CompanyType {
        Apple,
        Samsung,
    }
    public class Company
    {
        [JsonConverter(typeof(StringEnumConverter))]
        public CompanyType CompanyType { get; set; }
    }
여기서 만일 해당 멤버 변수가 배열이나 리스트 형태라면 아래와 같이 Attribute를 지정해주면 됩니다.
    using Newtonsoft.Json;
    using Newtonsoft.Json.Converters;
    
    public enum CompanyType {
        Apple,
        Samsung,
    }
    public class Company
    {
        [JsonConverter(typeof(StringEnumConverter))]
        public CompanyType CompanyType { get; set; }
        
        [JsonProperty(ItemConverterType = typeof(StringEnumConverter))]
        public List<CompanyType> CompanyTypes { get; set; }
    }
'Development > C#' 카테고리의 다른 글
| [C#] HMACSHA256 클래스를 이용해서 사용자 비밀번호를 암호화하기 (0) | 2023.02.15 | 
|---|---|
| [C#] Project publish할 때 "Could not find a part of the path..." 오류가 발생할 경우 (0) | 2023.02.12 | 
| [NLog] log message가 발생할 때 마다 호출되는 callback 함수 만들기 (0) | 2023.02.08 | 
| [C#] 두 변수의 값 바꾸기(Swap) (0) | 2023.02.07 | 
| [Json.Net] SelectToken/SelectTokens 사용법 (0) | 2023.01.25 | 
