Sorting JArray in C# with Newtonsoft.Json
By FoxLearn 1/9/2025 3:29:46 AM 112
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:
- First, the
JArray
is converted to a strongly typed list of integers. - The list is then sorted in ascending order.
- Finally, the sorted list is converted back into a
JArray
.
Output:
1 3 5 7 8
- Using the OrderBy and OrderByDescending in LINQ
- Querying with LINQ
- Optimizing Performance with Compiled Queries in LINQ
- MinBy() and MaxBy() Extension Methods in .NET
- SortBy, FilterBy, and CombineBy in NET 9
- Exploring Hybrid Caching in .NET 9.0
- Using Entity Framework with IDbContext in .NET 9.0
- Primitive types in C#