2009-08-17 2 views
13

Nếu tôi có mảng hai chiều trong C# - làm thế nào tôi có thể chuyển đổi nó thành chuỗi JSON có chứa mảng hai chiều?Làm cách nào để chuyển đổi mảng C# hai chiều thành đối tượng JSON?

ví dụ:

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

cung cấp mảng phẳng một chiều trong đối tượng JSON. Tài liệu của Microsoft nêu rõ:

'Mảng đa chiều được tuần tự hóa thành mảng một chiều và bạn nên sử dụng nó làm mảng phẳng.'

Trả lời

17

Bạn có thể sử dụng một mảng lởm chởm thay vì một mảng hai chiều, được định nghĩa như sau:

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

Các JavascriptSerializer sẽ sau đó serialise này thành dạng [[#, #, #, #] , [#, #, #, #], v.v ...]