Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#对JSON进行值排序_C#_Json_Json.net - Fatal编程技术网

C#对JSON进行值排序

C#对JSON进行值排序,c#,json,json.net,C#,Json,Json.net,我有一个来自CRM的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"}] 我已经找到了这个线程: 但是我不知道如何将JS

我有一个来自CRM的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"}]
我已经找到了这个线程:

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

弗朗西斯

编辑:

string sourcePath = @Settings.Default.folder;
            string pathToSourceFile = Path.Combine(sourcePath, "myfile.json");
            var list = JsonConvert.DeserializeObject<List<Gesamtplan>>(File.ReadAllText(pathToSourceFile));
string sourcePath=@Settings.Default.folder;
字符串pathToSourceFile=Path.Combine(sourcePath,“myfile.json”);
var list=JsonConvert.DeserializeObject(File.ReadAllText(pathToSourceFile));
我用来将JSON加载到C#对象中。您应该创建一个与JSON中的数据匹配的类,然后可以对其进行排序

// Convert to string
string serializedAsString = JsonConvert.SerializeObject(obj, Formatting.Indented);

// Convert to C# object
JsonConvert.DeserializeObject<YourClass>(serializedString);
//转换为字符串
string serializedAsString=JsonConvert.SerializeObject(obj,Formatting.Indented);
//转换为C#对象
反序列化对象(serializedString);
像这样试试

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);
}
使用Newtonsoft.Json;
公共类根对象
{
公共字符串名称{get;set;}
公共字符串类型{get;set;}
公共字符串id{get;set;}
}
私有字符串AscMyJson(字符串json)
{
var listOb=JsonConvert.DeserializeObject(json);
var descListOb=listOb.OrderBy(x=>x.id);
返回JsonConvert.SerializeObject(descListOb);
}

当您说
将我的JSON文件从解决方案加载到方法中时,您的意思是?不,对不起。我的意思是,我不知道如何将我的文件从解决方案加载到代码中…OP希望它升序使用
OrderBy
而不是
OrderByDescending
看起来不错,但现在顺序错了。我们怎样才能改变订单?此时,应该是最后一个ID位于文件的顶部:)Got-var listOb=JsonConvert.DeserializeObject(json);var descListOb=listOb.OrderBy(x=>x.id);返回JsonConvert.SerializeObject(descListOb);