C#对JSON进行值排序
我有一个来自CRM的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
[{"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);