「JSON オブジェクトを逆シリアル化できません」エラーのトラブルシューティング
この一般的な JSON 逆シリアル化エラー「現在の JSON オブジェクトを逆シリアル化できません」は、JSON データの構造と逆シリアル化コード内の予期されるデータ型の不一致が原因で発生します。 エラー メッセージは不一致を示唆しています。JSON はオブジェクトである可能性がありますが、コードはそれを配列として逆シリアル化しようとします。
デシリアライゼーションの修正
この問題は、JSON オブジェクトをリストに逆シリアル化しようとするときに発生します。 提供された JSON は明らかにオブジェクトであり、配列ではありません。解決策は、JSON 構造と一致するように逆シリアル化を調整することです。 List<RootObject>
に逆シリアル化する代わりに、RootObject
インスタンスに直接逆シリアル化します。
間違ったコード (リストに逆シリアル化しようとしています):
<code class="language-csharp">List<RootObject> datalist = JsonConvert.DeserializeObject<List<RootObject>>(jsonString);</code>
修正されたコード (単一の RootObject への逆シリアル化):
<code class="language-csharp">RootObject data = JsonConvert.DeserializeObject<RootObject>(jsonString);</code>
この修正されたコードは JSON のオブジェクト構造を正確に反映しており、逆シリアル化エラーが排除されています。 RootObject
クラスが JSON オブジェクト内のプロパティに正しくマップされていることを必ず確認してください。 JSON に Datum
オブジェクトの配列を保持するプロパティが含まれている場合、RootObject
クラスにはこれに対応する対応するプロパティ (例: List<Datum> data
) が必要です。
以上がJSON 逆シリアル化中に「現在の JSON オブジェクトを逆シリアル化できません」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。