序列化和反序列化Jagged数组C#

时间:2016-03-25 11:32:41

标签: c# serialization json.net deserialization jagged-arrays

我的Web服务中有一个方法,它运行两个linq查询并将结果插入Jagged数组。我现在正在尝试序列化和反序列化数组。我正在使用newtonsoft json这样做。

然而,当我尝试反序列化数组时,我得到以下内容:

  

其他信息:无法创建System.Array类型的实例。 Type是接口或抽象类,不能   被实例化。路径'[0] [0]',第1行,第3位。

在我的网络服务方法中,我有(序列化):

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);

有人知道发生了什么事吗?

感谢。

1 个答案:

答案 0 :(得分:0)

这是因为反序列化是通过首先使用默认构造函数创建对象然后填充内部值来执行的。这里使用的是Array类,它是一个抽象类。因此,您无法创建它的实例。

如果你想使用两个不同类型的数组,那么简单的解决方案就是发送两个jsons。