我的web服务中有一个方法,它运行两个linq查询,并将结果插入Jagged数组中。我现在正试图序列化和反序列化数组。我使用的是newtonsoftjson。
然而,当我尝试反序列化数组时,我会得到以下结果:
其他信息:无法创建System.Array类型的实例。type是接口或抽象类,不能被实例化。路径"[0][0]",第1行,位置3。
在我的Web服务方法中,我有(序列化):
Array[][] myArray = new Array[2][];
myArray[0] = mtsections; //linq query 1
myArray[1] = sectionDetails; //linq query 2
string myp = JsonConvert.SerializeObject(myArray);
return myp;
在我的客户中,我有(反序列化):
string JSONString = context.ExpordOfQuestionsWord(RaId);
Array[][] myArray = new Array[2][];
myArray = JsonConvert.DeserializeObject<Array[][]>(JSONString);
有人知道发生了什么事吗?
谢谢。
这是因为反序列化是通过首先使用默认构造函数创建对象,然后填充内部值来执行的。这里您使用的是Array类,它是一个抽象类。因此,您无法创建它的实例。
如果您想使用两个不同类型的数组,那么简单的解决方案就是发送两个json。