首頁 >後端開發 >C++ >為什麼我的 JSON 資料出現「類型不符」反序列化錯誤?

為什麼我的 JSON 資料出現「類型不符」反序列化錯誤?

Patricia Arquette
Patricia Arquette原創
2025-01-08 06:02:42348瀏覽

Why Am I Getting a

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的屬性,該屬性包含一個物件數組。

為了解決這個問題,需要讓反序列化類型與JSON資料的結構相符。在本例中,正確的反序​​列化行應該是:

<code class="language-csharp">    RootObject datalist = JsonConvert.DeserializeObject<RootObject>(jsonstring);</code>

datalist宣告為RootObject,可以正確地反序列化包含data屬性(該屬性保存物件陣列)的JSON物件。 這避免了類型不匹配錯誤,因為現在程式碼的預期類型與JSON資料的實際結構一致。

以上是為什麼我的 JSON 資料出現「類型不符」反序列化錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn