0

我正在创建一个 .net 应用程序来管理来自各种 Web 服务的一些提要。我刚刚开始使用 JSON.NET,我正在寻找从 JSON 到我的 .net 对象的所有转换。

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

在执行此操作时,我遇到了以下问题:使用 将 XML 转换为 JSON 字符串(称为myInput)后JsonConvert.SerializeXmlNode(myXMLdoc),使用 时出现错误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) - 或者是否有一个既定的模式来做这种事情我会更好地学习和实施。

4

1 回答 1

1

我认为问题在于您的 JSON 字符串格式错误。

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

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

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

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

于 2012-04-09T08:59:57.970 回答