JSON 역직렬화 실패: JSON 개체를 개체 목록으로 구문 분석할 수 없습니다.
JSON 문자열을 사용자 지정 개체 목록으로 역직렬화하려고 하면 다음 오류가 발생할 수 있습니다. "현재 JSON 개체(예: {"name":"value"}
)를 역직렬화하여 'System.Collections.Generic' .List를 입력할 수 없습니다.1',因为该类型需要一个JSON数组(例如:
[1,2,3]`)를 올바르게 역직렬화해야 합니다."
이 오류는 JSON 구조가 예상 형식과 일치하지 않아 발생합니다. JSON 배열은 목록이나 컬렉션을 나타내는 데 사용되는 반면 JSON 개체는 키-값 쌍을 나타내는 데 사용됩니다. 이 예에서 JSON 문자열에는 "data" 속성이 개체 배열인 단일 개체가 포함되어 있습니다. 이 문제를 해결하려면 JSON 문자열을 적절한 클래스 구조로 역직렬화해야 합니다.
JSON 구조 이해
제공되는 JSON 문자열 구조는 다음과 같습니다.
<code class="language-json">{"data":[{"target_id":9503123,"target_type":"user"}]}</code>
"data" 속성이 개체 배열인 단일 개체를 포함합니다.
올바른 역직렬화 코드
오류를 일으키는 코드 줄은 다음과 같습니다.
<code class="language-csharp">List<rootobject> datalist = JsonConvert.DeserializeObject<list>(jsonstring);</code>
이 줄은 JSON 문자열을 RootObject 개체 목록으로 역직렬화하려고 시도합니다. 그러나 JSON 문자열에는 개체 목록이 아닌 단일 개체가 포함됩니다. 이 오류를 해결하려면 코드를 다음으로 변경하세요.
<code class="language-csharp">RootObject datalist = JsonConvert.DeserializeObject<rootobject>(jsonstring);</code>
이 수정된 코드는 JSON 문자열을 JSON 구조와 올바르게 일치하는 단일 RootObject 객체로 역직렬화합니다.
결론
코드가 JSON 구조와 올바르게 일치하는지 확인하여 '현재 JSON 개체를 역직렬화할 수 없습니다' 오류를 해결할 수 있습니다. 성공적인 역직렬화를 위해서는 JSON 문자열의 예상 형식을 이해하는 것이 중요합니다.
위 내용은 '현재 JSON 개체를 역직렬화할 수 없습니다...'라는 메시지와 함께 내 JSON 역직렬화가 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!