JSON 데이터를 구문 분석할 때 제공된 열거형 값이 코드베이스에 정의된 값과 일치하지 않는 시나리오를 처리하는 것이 중요합니다. 이는 일반적으로 타사 API가 시간이 지남에 따라 새로운 열거형 값을 도입할 때 발생합니다.
해결책: 사용자 정의 JsonConverter
이 문제를 해결하려면 사용자 정의 JsonConverter를 생성할 수 있습니다.
class TolerantEnumConverter : JsonConverter { // ... Implementation ... }
이 변환기는 다음을 통해 역직렬화 프로세스를 단순화합니다. 논리:
샘플 사용법:
[JsonConverter(typeof(TolerantEnumConverter))] enum Status { Ready, Set, Go } string json = @"{ ""status"": ""SomethingElse"" }"; var status = JsonConvert.DeserializeObject<Status>(json); // Returns "Ready"
Nullable Enums 및 "알려지지 않은" 값:
알 수 없는 값이 있는 null 허용 열거형을 처리하려면 열거형 정의에 "알 수 없음" 값을 추가하면 됩니다. 예:
[JsonConverter(typeof(TolerantEnumConverter))] enum Color { Red, Yellow, Green, Unknown = 99 } string colorJson = @"{ ""color"": ""Purple"" }"; var color = JsonConvert.DeserializeObject<Color?>(colorJson); // Returns null
결론:
여기에 제시된 사용자 정의 JsonConverter를 활용하면 시간이 지남에 따라 열거형 값이 변경되더라도 JSON 역직렬화가 원활하게 진행되도록 할 수 있습니다. 오류를 방지하고 데이터 무결성을 유지합니다.
위 내용은 JSON을 역직렬화할 때 알 수 없는 열거형 값을 어떻게 처리할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!