JSON 逆シリアル化タイプの不一致エラー
プログラミングでは、「現在の JSON オブジェクトを逆シリアル化できません (例: {"name":"value"}
)...」エラーが発生するのはよくある問題です。このエラーは、JSON データの構造が、コードで定義されている予期される型と一致しない場合に発生します。
次のコード スニペット内:
<code class="language-csharp"> //jsonstring {"data":[{"target_id":9503123,"target_type":"user"}]} List<RootObject> datalist = JsonConvert.DeserializeObject<List<RootObject>>(jsonstring);</code>
問題は逆シリアル化された型にあります。この行は、オブジェクトの配列を期待して、JSON 文字列 jsonstring
を List<RootObject>
に逆シリアル化しようとします。ただし、JSON データ構造はオブジェクトであり、オブジェクトの配列を含む data
というプロパティが 1 つだけあります。
この問題を解決するには、逆シリアル化された型が JSON データの構造と一致する必要があります。この場合、正しい逆シリアル化行は次のようになります:
<code class="language-csharp"> RootObject datalist = JsonConvert.DeserializeObject<RootObject>(jsonstring);</code>
プロパティ (オブジェクトの配列を保持する) を含む datalist
JSON オブジェクトは、RootObject
を data
として宣言することで正しく逆シリアル化できます。 これにより、予期されるコードの型が JSON データの実際の構造と一致するようになるため、型の不一致エラーが回避されます。
以上がJSON データで「型の不一致」逆シリアル化エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。