JSON.NET 无法序列化 excel 数组
JSON.NET unable to serialize excel array
我在尝试使用 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));
重新发布答案以防对某人有帮助..
基本上,我必须使数组从零开始,以便 JSON.Net 能够正确地对其进行 searilize:
object[,] zeroBasedArr = new object[oneBasedArr.GetLength(0), oneBasedArr.GetLength(1)];
Array.Copy(oneBasedArr, 1, darr, 0, oneBasedArr.GetLength(0) * oneBasedArr.GetLength(1));
我在尝试使用 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));
重新发布答案以防对某人有帮助.. 基本上,我必须使数组从零开始,以便 JSON.Net 能够正确地对其进行 searilize:
object[,] zeroBasedArr = new object[oneBasedArr.GetLength(0), oneBasedArr.GetLength(1)];
Array.Copy(oneBasedArr, 1, darr, 0, oneBasedArr.GetLength(0) * oneBasedArr.GetLength(1));