我正在创建一个.net应用程序来管理来自各种Web服务的一些提要。我刚刚开始使用JSON.NET,我正在寻求从JSON转换到我的.net对象。
所以,我想任何我不能作为JSON获取的feed,我会得到XML并将其首先转换为JSON,然后我可以使用一组处理JSON的方法来完成实际的工作
在执行此操作时,我遇到了以下问题:将XML转换为带有myInput
的JSON字符串(名为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 - 或者如果有一种确定的模式来做这种事情,我会更好地学习和实现。
答案 0 :(得分:1)
我认为问题在于您的JSON字符串格式错误。
反序列化抱怨您无法将JSON对象反序列化为List。
{} - 表示JSON对象=带有属性的.NET对象或.NET字典
[] - 表示JSON数组= .NET数组或列表
所以你应该只从json字符串中提取项目并将它们存储为'[]'