Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 反序列化';它首先从XML转换而来_.net_Xml_Json_Serialization_Json.net - Fatal编程技术网

.net 反序列化';它首先从XML转换而来

.net 反序列化';它首先从XML转换而来,.net,xml,json,serialization,json.net,.net,Xml,Json,Serialization,Json.net,我正在创建一个.net应用程序来管理来自各种web服务的一些提要。我刚刚开始使用JSON.NET,我希望将JSON转换成我的.NET对象 因此,我认为对于任何不能作为JSON获取的提要,我都会获取XML并首先将其转换为JSON,然后我可以使用一组处理JSON的方法来完成实际工作 在这样做的过程中,我遇到了以下问题:使用JsonConvert.SerializeXmlNode(myXMLdoc)将XML转换为JSON字符串(称为myInput)后,使用JsonConvert.Deserialize

我正在创建一个.net应用程序来管理来自各种web服务的一些提要。我刚刚开始使用JSON.NET,我希望将JSON转换成我的.NET对象

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

在这样做的过程中,我遇到了以下问题:使用
JsonConvert.SerializeXmlNode(myXMLdoc)
将XML转换为JSON字符串(称为
myInput
)后,使用
JsonConvert.DeserializeObject(对象的列表))(myInput)
时出现错误:

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

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字符串中提取项目,并将它们存储为“[]”行,谢谢。我在这里盲目地使用json.net
JsonConvert.SerializeXmlNode
方法。它显然无法预测数组和对象的区别。您知道我的备选方案是什么吗?也许您的xml在“items”节点上需要一些元数据来告诉JsonConvert这是一个列表或数组。