反序列化首先从 XML 转换的 JSON 时出错



我正在创建一个 .net 应用程序,用于管理来自各种 Web 服务的一些源。我刚刚开始使用 JSON.NET,我希望从 JSON 转换为我的 .net 对象。

所以,我想对于我无法作为 JSON 获得的任何提要,我会先获取 XML 并将其转换为 JSON,然后我可以使用一组处理 JSON 的方法来完成实际工作。

在此过程中,我遇到了以下问题:使用 JsonConvert.SerializeXmlNode(myXMLdoc) 将 XML 转换为 JSON 字符串(称为 myInput )后,使用 JsonConvert.DeserializeObject(Of List(Of Object))(myInput) 时出现错误:

无法将 JSON 对象反序列化为类型 'System.Collections.Generic.List'1[System.Object]'.第 1 行,位置 8.

myInput是这样开始的:

{"?xml":{"@version":"1.0","@encoding":"UTF-8","@standalone":"yes"},"items":{"@size":"72","item":[{"id":"123456","description": ...

所以,我的问题具体是什么导致了这个错误,但我也很乐意听到我的方法是否是一个好主意(即在继续之前将所有输入数据转换为 JSON) - 或者是否有一个既定的模式来做这种事情我会更好地学习和实现。

我认为

问题出在 JSON 字符串的错误格式上。

反序列化抱怨无法将 JSON 对象反序列化为列表。

{} - 表示 JSON 对象 = 带有属性的 .NET 对象或 .NET 字典

[] - 表示 JSON 数组 = .NET 数组或列表

因此,您应该仅从 json 字符串中提取项目并将它们存储为"[]"

相关内容

  • 没有找到相关文章

最新更新