我有以下json格式文件,rankingOutput
{
"12345": {
"ABC": {
"rank": 3,
"Comments": [
"Good"
]
},
"DEF": {
"rank": 2,
"Comments": [
"Good"
]
},
"GHI": {
"rank": 1,
"Comments": [
"Bad"
]
}
}
}
我有以下反序列化代码
JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, RankingsClass>>>(
System.IO.File.ReadAllText(rankingOutput));
public class RankingsClass
{
public int rank;
public string[] comments;
}
虽然上面的代码正确地反序列化,但我想知道是否有一个选项,以便我的反序列化器将返回字符串&#34; ABC&#34;,&#34; DEF&#34;和&#34; GHI&#34;按等级字段按升序排列。
答案 0 :(得分:0)
尝试在结果集上使用Linq,如:
List<RankingsClass> list = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, RankingsClass>>>(System.IO.File.ReadAllText(rankingOutput));
return list.OrderByDescending(c => c.rank);
答案 1 :(得分:0)
Dictionary
是一个无序集合。对于其中的项目,您无法对任何订单有任何期望。您需要使用实际排序的完全不同的数据结构,例如SortedDictionary
。