JSON 역직렬화 오류 처리: 목록 유형 및 비배열 JSON 데이터
Newtonsoft의 JsonConvert를 사용하여 JSON 데이터를 역직렬화할 때 개발자는 다음 오류가 자주 발생합니다. "현재 JSON 개체를 'System.Collections.Generic.List`1[T]' 유형으로 역직렬화할 수 없습니다. 올바르게 역직렬화하세요”
이 오류는 대상 데이터 유형이 목록(오류 메시지에서 'List`1'로 표시됨)이지만 JSON 데이터가 배열이 아닌 경우에 발생합니다. 이 문제를 해결하려면 예상 배열 형식과 일치하도록 JSON 데이터를 수정하거나 배열이 아닌 형식을 허용하도록 대상 데이터 유형을 조정해야 합니다.
JSON 데이터 변환
JSON 데이터가 실제로 배열이지만 이 형식으로 표시되지 않는 경우 역직렬화하기 전에 배열 형식으로 변환해야 합니다. 이 목적으로 JSON.NET의 JObject 또는 JArray 클래스를 사용할 수 있습니다. 예를 들어 JSON 데이터가 다음 형식인 경우:
<code>{"data":[{"target_id":9503123,"target_type":"user"}]}</code>
다음 코드를 사용하여 배열 형식으로 변환할 수 있습니다.
<code>JObject obj = JObject.Parse(jsonstring); jsonstring = obj["data"].ToString();</code>
이렇게 하면 JSON 데이터가 다음 배열 형식으로 변환됩니다.
<code>[{"target_id":9503123,"target_type":"user"}]</code>
대상 데이터 유형 조정
JSON 데이터가 배열이 아닌 경우 배열이 아닌 형식을 허용하도록 대상 데이터 유형을 조정해야 합니다. 이 경우 List
<code>RootObject datalist = JsonConvert.DeserializeObject<RootObject>(jsonstring);</code>
위 내용은 목록 유형에 배열이 아닌 JSON 데이터가 필요한 경우 JSON 역직렬화가 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!