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

时间:2012-04-09 08:52:31

标签: .net xml json serialization json.net

我正在创建一个.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 - 或者如果有一种确定的模式来做这种事情,我会更好地学习和实现。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

所以你应该只从json字符串中提取项目并将它们存储为'[]'