C#按值对JSON进行排序

4

我有一个来自我们客户关系管理系统的JSON文件:

[{"name": "erwin", "type":"ma", "id":"129"}, {"name": "hans", "type":"tf", "id":"12"}]

现在我需要按照ID值对该JSON进行排序,在我的例子中输出应为:
[{"name": "hans", "type":"tf", "id":"12"}, {"name": "erwin", "type":"ma", "id":"129"}]

我已经找到这个帖子:C# Sort JSON string keys

但我不知道如何将我的JSON文件加载到该解决方案的方法中。也许可以用json.net?问候,

弗朗西斯

编辑:

string sourcePath = @Settings.Default.folder;
            string pathToSourceFile = Path.Combine(sourcePath, "myfile.json");
            var list = JsonConvert.DeserializeObject<List<Gesamtplan>>(File.ReadAllText(pathToSourceFile));

当你说“将我的JSON文件加载到解决方案中的方法中”时,你是指嵌入式资源 - Bob
不好意思,我是说我不知道如何将我的文件从解决方案加载到代码中... - Francis
1个回答

4

试试这样做

using Newtonsoft.Json;

public class RootObject
{
    public string name { get; set; }
    public string type { get; set; }
    public string id { get; set; }
}

private string AscMyJson(string json)
{
    var listOb = JsonConvert.DeserializeObject<List<RootObject>>(json);
    var descListOb = listOb.OrderBy(x => x.id);
    return JsonConvert.SerializeObject(descListOb);
}

OP想要升序排列,请使用OrderBy而不是OrderByDescending - Bob
看起来很不错,但现在顺序是错误的。我们如何交换顺序?目前,应该是最后一个的ID在文件的顶部 :) - Francis
1
没问题 - var listOb = JsonConvert.DeserializeObject<List<RootObject>>(json); var descListOb = listOb.OrderBy(x => x.id); return JsonConvert.SerializeObject(descListOb); - Francis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接