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中文網其他相關文章!