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
解决方案:
为了解决这个问题,必须调整目标反序列化类型以与JSON结构对齐。
正确的反序列化:
<code class="language-csharp">RootObject data = JsonConvert.DeserializeObject<RootObject>(jsonstring);</code>
通过将反序列化类型更改为RootObject,代码现在与JSON结构对齐,反序列化过程成功完成,不会出现上述错误。 如果需要访问target_id
和target_type
,则需要进一步处理data
对象,例如:data.data[0].target_id
。
以上是为什么尝试将对象转换为列表时 JSON 反序列化失败?的详细内容。更多信息请关注PHP中文网其他相关文章!