首頁 > 後端開發 > C++ > 為什麼嘗試將物件轉換為列表時 JSON 反序列化失敗?

為什麼嘗試將物件轉換為列表時 JSON 反序列化失敗?

Susan Sarandon
發布: 2025-01-08 06:00:40
原創
814 人瀏覽過

Why Does JSON Deserialization Fail When Trying to Convert an Object to a List?

JSON反序列化問題:無法將物件轉換為列表

在嘗試將JSON物件反序列化為自訂物件的清單時,開發人員可能會遇到錯誤:「無法將目前JSON物件(例如:{"name":"value"})反序列化為類型'System.Collections.Generic.List`1[...]'」。當JSON結構與目標反序列化類型不符時,就會出現此問題。

請考慮以下程式碼片段:

<code class="language-csharp">string jsonstring = "{\"data\":[{\"target_id\":9503123,\"target_type\":\"user\"}]}";
List<RootObject> datalist = JsonConvert.DeserializeObject<List<RootObject>>(jsonstring);</code>
登入後複製

在此場景中,目標反序列化類型為List,期望一個RootObject物件的JSON陣列。但是,JSON字串表示的是單一RootObject對象,包含在一個名為「data」的陣列中。

解:

為了解決這個問題,必須調整目標反序列化類型以與JSON結構對齊。

正確的反序​​列化:

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

透過將反序列化類型改為RootObject,程式碼現在與JSON結構對齊,反序列化過程成功完成,不會出現上述錯誤。 如果需要存取target_idtarget_type,則需要進一步處理data對象,例如:data.data[0].target_id

以上是為什麼嘗試將物件轉換為列表時 JSON 反序列化失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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