Как отсортировать массив JsonArray
Мы используем System.JSON для приема вызовов API, и, похоже, нет способа сортировки данных.
Работает в C# ASP.NET 4 и ASP.NET MVC 3.
Вот пример вызова данных:
string requestURL = /*URL to the API*/;
WebRequest request = HttpWebRequest.Create(requestURL);
using (var response = request.GetResponse()) {
return JsonObject.Load(response.GetResponseStream());
}
Эта функция возвращает JsonValue, которая содержит JsonArray, и это то, что я пытаюсь отсортировать.
1 ответ
Вы не показали, как выглядит ваш JSON, и по какому свойству вы хотите заказать. Предположим, у вас есть следующий JSON:
[
{
"Id": 1,
"Text": "item 1"
},
{
"Id": 2,
"Text": "item 2"
},
{
"Id": 3,
"Text": "item 3"
},
{
"Id": 4,
"Text": "item 4"
},
{
"Id": 5,
"Text": "item 5"
}
]
и вы хотите упорядочить по свойству Id в порядке убывания. Это можно сделать, например, так:
class Program
{
static void Main(string[] args)
{
string requestURL = "/URL to the API/";
WebRequest request = HttpWebRequest.Create(requestURL);
using (var response = request.GetResponse())
{
var result = JsonArray.Load(response.GetResponseStream());
var orderedResult = result.OrderByDescending(x => x.Value["Id"].ReadAs<int>());
foreach (var item in orderedResult)
{
Console.WriteLine("{0} : {1}", item.Value["Id"], item.Value["Text"]);
}
}
}
}