.net - 如何对 JsonArray 进行排序

标签 .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,这就是我要排序的内容。

最佳答案

您尚未显示 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"]);
            }
        }
    }
}

关于.net - 如何对 JsonArray 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11677020/

相关文章:

c# - Razor:自定义 BeginForm()-like Razor 一次性 block 在某些情况下不起作用

c# - 错误 CS0433 : The type 'JsonValue' exists in both 'System.Json, Version=2.0.5.0' and 'Xamarin.Auth' (CS0433)

c# - 如果存在两个具有相似 SSID 的 WiFi 网络,您如何在代码中区分两者?

c# - GetHashCode方法在asp.net core中为相同的字符串返回不同的值

c# - 如何显示动态生成的图像

c# - 如何在 JsonValue 中序列化 JsonPrimitive

.net - 在 .Net 应用程序中管理来自单个 Socket 的并发读取

c# - 将消息从一个正在运行的控制台应用程序发送到另一个

asp.net-mvc - 在单声道或 Windows 上托管 ServiceStack、MVC3 或 MVC4 以及单声道的状态是什么