복잡하게 중첩된 JSON 데이터를 C# 클래스로 역직렬화
어떤 경우에는 API가 여러 수준의 중첩 개체가 포함된 JSON 데이터를 반환할 수 있습니다. 이러한 데이터를 C# 클래스로 역직렬화하는 것은 어려울 수 있습니다. 특히 개체 구조가 JSON 응답과 정확하게 일치하지 않는 경우 더욱 그렇습니다.
문제에 대한 자세한 설명
예제에 표시된 것처럼 제공된 JSON 응답에는 개별 작업 코드를 나타내는 여러 키-값 쌍이 포함된 "jobcodes" 개체가 포함된 루트 수준 "결과" 개체가 포함되어 있습니다. 그러나 원래 C# 개체 디자인에서는 하나의 JobCode 인스턴스만 고려했기 때문에 역직렬화 시 null 값이 반환되었습니다.
솔루션
복잡한 JSON 데이터를 성공적으로 역직렬화하려면 JSON 응답과 정확히 동일한 클래스 구조를 생성해야 합니다. 이 경우:
Dictionary<string, JobCode>
유형의 "jobcodes" 속성이 포함되어야 합니다. 이는 JSON 응답에 있는 "jobcodes" 개체의 동적 특성을 반영합니다. 역직렬화 코드
올바른 클래스 구조를 갖추면 역직렬화가 간단해집니다.
<code class="language-csharp">RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);</code>
이 코드 줄은 "RootObject" 클래스에 대한 JSON 응답을 역직렬화하여 "Results" 속성 및 관련 작업 코드 세부정보에 대한 액세스를 제공합니다.
JobCode 목록으로 돌아가기
최종적으로 작업 코드 목록을 검색하려면 간단한 루프를 사용하여 "JobCodes" 사전에서 추출할 수 있습니다.
<code class="language-csharp">List<JobCode> jobCodes = new List<JobCode>(); foreach (KeyValuePair<string, JobCode> jobCode in obj.Results.JobCodes) { jobCodes.Add(jobCode.Value); }</code>
이러한 단계를 수행하면 중첩된 개체가 포함된 복잡한 JSON 데이터를 C# 클래스로 효율적으로 역직렬화하여 API 응답에 더 쉽게 액세스하고 처리할 수 있습니다.
위 내용은 복잡한 중첩 JSON 데이터를 C# 클래스로 역직렬화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!