>백엔드 개발 >C++ >중첩된 JSON을 형식화된 C# 개체로 역직렬화하려면 어떻게 해야 합니까?

중첩된 JSON을 형식화된 C# 개체로 역직렬화하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-25 12:11:09437검색

How Can I Deserialize Nested JSON into Typed C# Objects?

유형화된 C# 개체를 사용한 중첩 JSON 역직렬화

중첩 JSON을 일반 사전로 역직렬화 C#에서 System.Text.Json을 사용하면 대부분의 속성이 JsonElement 유형이 될 수 있습니다. JSON 속성 유형을 기반으로 보다 구체적인 C# 유형을 얻으려면 사용자 지정 JsonConverter가 필요합니다.

ObjectAsPrimitiveConverter

다음 코드는 ObjectAsPrimitiveConverter라는 사용자 지정 JsonConverter를 제공합니다.

public class ObjectAsPrimitiveConverter : JsonConverter<object>
{
    // ... (converter implementation)
}

변환기 구성

변환기를 구성하려면 원하는 FloatFormat(이중 또는 소수), UnknownNumberFormat(오류 또는 JsonElement) 및 ObjectFormat(ExpandoObject 또는 Dictionary)을 지정하세요.

var options = new JsonSerializerOptions
{
    Converters = { new ObjectAsPrimitiveConverter(...) },
    WriteIndented = true,
};

역직렬화 객체

중첩된 JSON을 객체(또는 ExpandoObject를 사용하는 경우 동적)로 역직렬화하려면 다음을 사용하세요.

dynamic d = JsonSerializer.Deserialize<dynamic>(json, options);

사용자 정의

변환기는 다양한 숫자 유형과 개체 형식을 지원하도록 사용자 정의할 수 있습니다. 또한 지원되지 않는 JSON 숫자를 더 적절하게 처리하도록 확장할 수 있습니다.

결론

사용자 정의 JsonConverter를 구현하면 중첩된 JSON 객체의 유형별 역직렬화를 달성할 수 있습니다. 각 속성에 대해 적절한 C# 유형을 사용하여 계층적 데이터 구조로 변환합니다.

위 내용은 중첩된 JSON을 형식화된 C# 개체로 역직렬화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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