如何排序JsonArray

时间:2012-07-26 19:53:17

标签: .net asp.net-mvc-3 system.json

我们正在使用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 个答案:

答案 0 :(得分: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"]);
            }
        }
    }
}