Как преобразовать двумерный массив С# в объект JSON?

Если у меня есть двумерный массив на С# - как я могу преобразовать его в строку JSON, содержащую двухмерный массив?

например.

int[,] numbers = new int[8,4];
JavaScriptSerializer js = new JavaScriptSerializer();
string json = js.Serialize(numbers);

дает плоский одномерный массив в объекте JSON. В документации Microsoft указано:

'Многомерный массив сериализуется как одномерный массив, и вы должны использовать его как плоский массив.'

Ответы

Ответ 1

Вы можете использовать неровный массив вместо двумерного массива, который определяется как:

int[][] numbers = new int[8][];

for (int i = 0; i <= 7; i++) {
   numbers[i] = new int[4];
   for (int j = 0; j <= 3; j++) {
      numbers[i][j] =i*j;
   }
}

Затем JavascriptSerializer сериализует это в форме [[#, #, #, #], [#, #, #, #] и т.д.]