JsonConvert.DeserializeObject는 JSON 데이터를 C# 개체로 변환하는 강력한 도구입니다. 그러나 JSON을 컬렉션이나 중첩 개체가 포함된 POCO(Plain Old CLR Object) 클래스로 역직렬화하려고 하면 오류가 발생할 수 있습니다.
JsonConvert.DeserializeObject를 사용할 때 발생하는 일반적인 문제는 JSON 배열을 강력한 형식의 컬렉션으로 역직렬화할 수 없다는 것입니다. 이 오류는 JSON 배열과 .NET 컬렉션 구조 간의 근본적인 차이점 때문에 발생합니다.
제공된 코드 조각에서 Accounts 속성은 List
이 문제를 해결하려면 개별 계정을 나타내는 사용자 정의 클래스 Account를 정의하고 [JsonProperty] 속성으로 Accounts 속성에 주석을 추가하여 JSON 응답에서 해당 속성 이름을 지정해야 합니다.
<code class="language-csharp">public class Account { public string github; } [JsonProperty("accounts")] public Account Accounts { get; set; }</code>
또한 User 클래스에서 JsonProperty 특성을 사용하여 속성을 해당 JSON 속성 이름에 명시적으로 바인딩하여 원활한 매핑을 보장할 수 있습니다.
<code class="language-csharp">[JsonProperty("username")] public string Username { get; set; } [JsonProperty("name")] public string Name { get; set; } [JsonProperty("location")] public string Location { get; set; }</code>
이러한 변경 사항이 구현되면 JsonConvert.DeserializeObject는 JSON 응답을 해당 관련 계정으로 채워진 Accounts 속성을 포함하여 강력한 형식의 User 객체로 쉽게 역직렬화할 수 있습니다.
위 내용은 JsonConvert.DeserializeObject를 사용하여 JSON 배열을 C# 컬렉션으로 역직렬화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!