JSON 역직렬화 중 알 수 없는 열거형 값 무시
문제:
Json을 사용한 JSON 역직렬화. net은 JSON 데이터에서 알 수 없는 열거형 값을 발견하면 예외를 발생시킬 수 있습니다. 이는 현재 문서를 기반으로 열거형이 생성되었지만 나중에 타사 API가 새 열거형 값을 추가하는 경우에 발생합니다.
해결책: Custom JsonConverter
이 문제를 해결하려면 , 사용자 정의 JsonConverter를 사용할 수 있습니다. 작동 방식은 다음과 같습니다.
코드 구현:
class TolerantEnumConverter : JsonConverter { ... (Implementation from the provided answer) }
사용:
적용 enum 유형에 대한 [JsonConverter(typeof(TolerantEnumConverter))] 속성 역직렬화 중에 사용자 지정 변환기를 사용하려면:
[JsonConverter(typeof(TolerantEnumConverter))] enum Status { ... (Enum values) }
예시 데모:
다음 코드 조각은 다양한 열거형 값과 JSON을 사용하여 TolerantEnumConverter를 사용하는 방법을 보여줍니다. 입력:
string json = @" { ... (JSON data with valid and invalid enum values) }"; Foo foo = JsonConvert.DeserializeObject<Foo>(json); foreach (PropertyInfo prop in typeof(Foo).GetProperties()) { object val = prop.GetValue(foo, null); Console.WriteLine(prop.Name + ": " + (val == null ? "(null)" : val.ToString())); }
출력:
콘솔 출력은 값을 "(null)", "Unknown"으로 설정하는 것을 포함하여 TolerantEnumConverter가 알 수 없는 열거형 값을 처리하는 방법을 보여줍니다. , 또는 열거형의 첫 번째 값을 사용합니다.
위 내용은 Json.net을 사용하여 JSON 역직렬화 중에 알 수 없는 열거형 값을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!