JSON陣列反序列化為預期物件失敗:「無法將陣列反序列化為物件」
嘗試將JSON數組反序列化為特定類別的物件可能會導致以下錯誤:「無法將JSON數組(例如[1,2,3])反序列化為類型'MyClass',因為該類型需要JSON物件(例如{"name":"value"})才能正確反序列化。
此錯誤表示JSON資料採用陣列格式,而目標類別期望單一物件格式。要解決此問題,請考慮以下方法:
1. 將JSON陣列反序列化為集合:
如果要將JSON陣列反序列化為物件的集合,可以修改程式碼如下:
<code class="language-csharp">var objResponse1 = JsonConvert.DeserializeObject<List<RetrieveMultipleResponse>>(JsonStr);</code>
2. 確保JSON正確格式化為物件:
或者,如果需要將JSON資料反序列化為單一對象,可以驗證JSON是否正確格式化。 JSON字串應括在花括號({})中,並應包含鍵值對。以下範例JSON表示一個有效的物件:
<code class="language-json">{ "Attributes": [ ... ], "Name": "account", "Id": "1" }</code>
<code class="language-csharp">var objResponse1 = JsonConvert.DeserializeObject<RetrieveMultipleResponse>(JsonStr);</code>
其他選項:
[JsonArray]
以上是當陣列作為物件時,為什麼 JSON 反序列化會失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!