Json.Net: 속성을 개체 대신 값으로 처리
JSON.Net을 사용하여 자동차와 같은 복잡한 개체를 나타내는 경우 소개에 설명된 StringId 클래스에서는 속성을 중첩된 개체가 아닌 일반 값으로 직렬화/역직렬화하는 것이 바람직한 경우가 있습니다. 이 문서에서는 이를 달성하기 위한 두 가지 접근 방식, 즉 유형 변환기와 JSON 변환기를 보여줍니다.
유형 변환기
StringId 클래스용으로 특별히 유형 변환기를 추가하면 JSON.Net이 다음을 수행할 수 있습니다. 직렬화/직렬화 해제 중에 문자열로/에서 문자열로 변환:
[TypeConverter(typeof(StringIdConverter))] class StringId { public string Value { get; set; } } class StringIdConverter : TypeConverter { // ... (Implement CanConvertFrom, CanConvertTo, ConvertFrom, and ConvertTo) }
JSON 변환기
또는 JSON 변환기는 변환 프로세스에 대한 더 많은 제어 기능을 제공합니다. StringId 클래스에 사용자 정의 JSON 변환기를 적용하면 직렬화 및 역직렬화 논리를 명시적으로 정의할 수 있습니다.
[JsonConverter(typeof(StringIdConverter))] class StringId { public string Value { get; set; } } class StringIdConverter : JsonConverter { // ... (Implement CanConvert, ReadJson, and WriteJson) }
전역 변환기 구성
JSON 변환기도 다음과 같이 정의할 수 있습니다. 전역적으로 설정합니다. 예를 들어 StringId 유형의 모든 속성을 값으로 처리하려면
JsonConvert.DefaultSettings = () => new JsonSerializerSettings { Converters = { new StringIdConverter() } };
추가 고려 사항
위 내용은 JSON.Net 속성을 개체 대신 값으로 직렬화/역직렬화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!