期待されたクラスへの JSON 配列の逆シリアル化に失敗しました
エラー メッセージは、逆シリアル化される JSON 文字列が配列であり、逆シリアル化ターゲットの型 RetrieveMultipleResponse
が JSON オブジェクトを予期していることを示します。以下は問題の説明と考えられる解決策です:
質問:
指定された JSON 文字列は、角括弧 []
で示されているように、JSON オブジェクトの配列です。
<code>[ { ... }, { ... }, { ... } ]</code>
ただし、RetrieveMultipleResponse
クラスは、その属性 (属性、名前、ID) が配列ではなく単一の値として定義されているため、単一の JSON オブジェクトを想定しています。
解決策:
この問題を解決するには、JSON 文字列を単一のオブジェクトではなく RetrieveMultipleResponse
オブジェクトのコレクションに逆シリアル化するようにコードを変更します。以下に例を示します:
<code class="language-csharp">var objResponse1 = JsonConvert.DeserializeObject<List<RetrieveMultipleResponse>>(JsonStr);</code>
List<RetrieveMultipleResponse>
を使用すると、JSON 文字列が RetrieveMultipleResponse
オブジェクトの配列である必要があることを示し、逆シリアル化プロセスが成功できるようになります。
以上がオブジェクトの代わりにアレイが予想されるのに、なぜJSONの敏aserializationが失敗するのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。