JSON.NET无法序列化excel数组

时间:2015-02-23 04:45:38

标签: c# excel-vba json.net vba excel

我在尝试使用JSON.NET序列化和从excel范围检索的对象数组时收到IndexOutOfRangeException。我认为发生这种情况的原因是excel数组不是基于零的。

如果我在.NET中创建这样的数组,则维度为{object[4,2]}

object[,] data = {
    { 1111, 1111 },
    { 1112, 1111 },
    { 1113, 1111 },
    { 1114, 1111 },
  };

当我查看从Excel检索到的数组时,我看到了:

 {object[1..4, 1..2]}

这是JSON.Net中的错误吗?我想如果我可以使数组从零开始,那就行了。但是如果没有创建新的数组并逐个复制值,就不知道如何轻松地做到这一点。有什么想法吗?

更新: 我尝试了以下内容,看起来这个代码将把从索引1开始的数组复制到一个从零开始的数组。不过,我从来不知道.net数组可以是非零的。

object[,] zeroBasedArr = new object[oneBasedArr.GetLength(0), oneBasedArr.GetLength(1)];
Array.Copy(oneBasedArr, 1, darr, 0, oneBasedArr.GetLength(0) * oneBasedArr.GetLength(1));

1 个答案:

答案 0 :(得分:0)

重新发送答案,以防有人帮助... 基本上我必须使数组从零开始,以便JSON.Net能够正确地对其进行搜索:

object[,] zeroBasedArr = new object[oneBasedArr.GetLength(0), oneBasedArr.GetLength(1)];
Array.Copy(oneBasedArr, 1, darr, 0, oneBasedArr.GetLength(0) * oneBasedArr.GetLength(1));