Sorting JArray in C# with Newtonsoft.Json

By FoxLearn 1/9/2025 3:29:46 AM   38
Although you can't directly sort a JArray in C#, you can work around this limitation.

 If your JArray consists of simple data types like numbers or strings, you can convert the JArray into a list, sort that list, and then convert it back into a JArray.

For example, let’s consider the following JSON array of numbers:

[5, 3, 8, 1, 7]

We want to sort this array in ascending order.

// Setting up the test data
JArray jArray = new JArray();
jArray.Add(5);
jArray.Add(3);
jArray.Add(8);
jArray.Add(1);
jArray.Add(7);

// Converting JArray to List and sorting
List<int> numbers = jArray.ToObject<List<int>>();
numbers.Sort();
jArray = JArray.FromObject(numbers);

// Output the sorted result
foreach (var item in jArray)
{
    Console.WriteLine(item);
}

In this example:

  1. First, the JArray is converted to a strongly typed list of integers.
  2. The list is then sorted in ascending order.
  3. Finally, the sorted list is converted back into a JArray.

Output:

1
3
5
7
8