보통 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 |