首頁 > 後端開發 > C++ > 為什麼我的 JSON 反序列化失敗並顯示'無法反序列化當前 JSON 物件...”?

為什麼我的 JSON 反序列化失敗並顯示'無法反序列化當前 JSON 物件...”?

Linda Hamilton
發布: 2025-01-08 06:11:44
原創
810 人瀏覽過

Why Does My JSON Deserialization Fail with

JSON反序列化失敗:無法將JSON物件解析為物件清單

在嘗試將JSON字串反序列化為自訂物件清單時,您可能會遇到錯誤:「無法將目前JSON物件(例如:{"name":"value"})反序列化為類型'System.Collections.Generic .List1',因为该类型需要一个JSON数组(例如:[1,2,3]`)才能正確反序列化」。

此錯誤是由於JSON結構與預期格式不符所造成的。 JSON數組用於表示列表或集合,而JSON物件用於表示鍵值對。在本例中,JSON字串包含單一對象,其「data」屬性是一個物件陣列。要解決此問題,您需要將JSON字串反序列化為適當的類別結構。

理解JSON結構

提供的JSON字串結構如下:

<code class="language-json">{"data":[{"target_id":9503123,"target_type":"user"}]}</code>
登入後複製

它包含一個單一對象,其「data」屬性是一個物件陣列。

修正反序列化程式碼

導致錯誤的程式碼行是:

<code class="language-csharp">List<rootobject> datalist = JsonConvert.DeserializeObject<list>(jsonstring);</code>
登入後複製

此行嘗試將JSON字串反序列化為RootObject物件的清單。但是,JSON字串包含單一對象,而不是對象列表。若要修復此錯誤,請將程式碼變更為:

<code class="language-csharp">RootObject datalist = JsonConvert.DeserializeObject<rootobject>(jsonstring);</code>
登入後複製

此更正後的程式碼將JSON字串反序列化為單一RootObject對象,該物件與JSON結構正確匹配。

結論

透過確保程式碼與JSON結構正確匹配,您可以解決「無法反序列化目前JSON物件」錯誤。了解JSON字串的預期格式對於成功反序列化至關重要。

以上是為什麼我的 JSON 反序列化失敗並顯示'無法反序列化當前 JSON 物件...”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板