>백엔드 개발 >C++ >사용자 정의 JsonConverter는 JSON 역직렬화에서 예기치 않은 열거형 값을 어떻게 처리할 수 있습니까?

사용자 정의 JsonConverter는 JSON 역직렬화에서 예기치 않은 열거형 값을 어떻게 처리할 수 있습니까?

DDD
DDD원래의
2025-01-03 10:39:44386검색

How Can a Custom JsonConverter Handle Unexpected Enum Values in JSON Deserialization?

사용자 지정 처리로 예기치 않은 JSON 열거형 값 극복

현재 열거형 정의를 초과하는 열거형 값이 포함된 JSON 데이터를 발견하면 다음과 같은 경험이 가능합니다. Json.net을 사용하여 역직렬화하는 동안 예외가 발생합니다. 이 문제를 해결하려면 사용자 정의 JsonConverter를 생성하는 것이 효과적인 솔루션입니다.

TolerantEnumConverter: 유연한 역직렬화 접근 방식

TolerantEnumConverter는 인식되지 않은 데이터를 처리할 때 유연성을 제공하는 사용자 정의 JsonConverter입니다. 열거형 값. 적절한 응답을 결정하기 위해 의사 결정 트리를 따릅니다.

  • JSON에 일치하는 열거형 값(문자열 또는 정수별)이 있으면 해당 열거형 값이 사용됩니다.
  • null 허용의 경우 enums에서 일치하는 항목이 없으면 null 값이 반환됩니다.
  • enum에 "알 수 없음" 값이 포함되어 있으면 다음에 대한 포괄적인 방법으로 사용됩니다. 인식할 수 없는 값입니다.
  • 위 항목 중 어느 것도 적용되지 않으면 열거형의 첫 번째 값이 사용됩니다.

이점 및 구현

사용 TolerantEnumConverter는 여러 가지를 제공합니다. 장점:

  • 인식할 수 없는 값에 관계없이 JSON 열거형에 대한 원활한 역직렬화.
  • 특정 요구 사항에 따라 처리할 수 있는 사용자 정의 가능.
  • null 허용 및 비 null 허용 호환성 열거형입니다.

TolerantEnumConverter는 열거형 유형에 [JsonConverter] 속성으로 추가하기만 하면 됩니다. 답변에 제공된 코드를 시작점으로 사용할 수 있으며 프로젝트 요구 사항에 맞게 조정할 수 있습니다.

데모 및 효과

제공된 데모는 TolerantEnumConverter가 처리하는 방법을 보여줍니다. 유효한 값, 잘못된 값, null 값을 포함한 다양한 JSON 열거형 값. 결과는 null을 허용하는 열거형과 null을 허용하지 않는 열거형 모두에 대해 표시되어 유연한 역직렬화 결과를 제공하면서 예외를 방지하는 변환기의 능력을 보여줍니다.

위 내용은 사용자 정의 JsonConverter는 JSON 역직렬화에서 예기치 않은 열거형 값을 어떻게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.