14

If I have a two-dimensional array in C# - how can I convert it into a JSON string that contains a two dimensional array?

eg.

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

gives a flat one-dimensional array in a JSON object. The Microsoft documentation states:

'A multidimensional array is serialized as a one-dimensional array, and you should use it as a flat array.'

1
  • Just for fun, I'll add that Newtonsoft's Json.NET doesn't have this serialization issue with two+-dimensional arrays and, to cover a popular use case in 2021, ASP.NET Core even provides a way to switch over Commented Sep 24, 2021 at 14:21

1 Answer 1

17

You can use a jagged array instead of a two-dimensional array, which is defined like:

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

The JavascriptSerializer will then serialise this into the form [[#,#,#,#],[#,#,#,#],etc...]

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.