2015-02-23 5 views
0

Я получаю исключение IndexOutOfRangeException при попытке использовать JSON.NET для сериализации и массива объектов, полученных из диапазона excel. Я думаю, причина, по которой это происходит, заключается в том, что массив excel не равен нулю.JSON.NET не удалось сериализовать массив excel

Если я создать массив, как это в .NET, размеры будут {object[4,2]}

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

Когда я смотрю на массиве, извлеченный из Excel, однако, я вижу:

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

Это ошибка в JSON.Net. Я думаю, что если я смогу сделать массив нулевым, это сработает. но не уверен, как сделать это легко, не создавая новый массив и копируя значения один за другим. Есть предположения?

UPDATE: Я пробовал следующее и выглядит так, как этот код будет делать трюк, чтобы скопировать массив, начиная с индекса 1, в массив, основанный на нуле. Тем не менее, я никогда не знал, что .net-массивы могут быть отличными от нуля.

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

ответ

0

перепроведении ответ в случае, если кто-то помогает .. В основном я должен был сделать массив с нуля для 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)); 
Смежные вопросы