JSON陣列反序列化錯誤:檢查原因
在嘗試反序列化JSON資料時,請務必確保JSON結構與預期的物件或集合類型一致。在本例中,遇到的錯誤是:
<code>“无法将当前JSON数组(例如[1,2,3])反序列化为类型'test.Model.RetrieveMultipleResponse',因为该类型需要一个JSON对象(例如{"name":"value"})才能正确反序列化。”</code>
理解JSON結構
提供的JSON表示一個RetrieveMultipleResponse物件的陣列:
<code>[ { ... }, { ... }, { ... } ]</code>
此結構顯示JSON是單一RetrieveMultipleResponse物件的數組,而不是單一物件。
將JSON結構與目標類型配對
指定的反序列化目標類型是'RetrieveMultipleResponse',它期望一個單一物件。但是,JSON結構是物件的陣列。要解決此不匹配問題,我們需要將JSON反序列化為可以處理物件數組的集合類型。
解:反序列化到集合類型
要正確反序列化JSON數組,我們需要使用集合類型作為目標類型:
<code>var objResponse1 = JsonConvert.DeserializeObject<List<RetrieveMultipleResponse>>(JsonStr);</code>
透過將目標類型變更為集合類型(例如List),我們可以成功反序列化RetrieveMultipleResponse物件的陣列。
以上是為什麼我的 JSON 數組反序列化在需要單一物件時會失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!