我有字典
Dictionary<string, object>
(值可以是字符串,整数或双精度型)。 我将字典导出到JSON文件:
JsonConvert.SerializeObject(myDict);
我希望保存的JSON按键排序。
答案 0 :(得分:4)
如果您使用SortedDictionary<TKey, TValue>
,它将按照键的顺序进行序列化:
var dict = new SortedDictionary<string, int>
{
{ "Z", 3 },
{ "B", 2 },
{ "A", 1 },
};
var json = JsonConvert.SerializeObject(dict);
Console.WriteLine(json);
输出:
{"A":1,"B":2,"Z":3}
答案 1 :(得分:1)
您可以使用SortedDictionary
它按键对条目进行排序,因此您不需要自己进行任何排序。
答案 2 :(得分:0)
只需使用临时的SortedDictionary对象:
var unsortedDic = new Dictionary<string, int>
{
{"Z", 3},
{"B", 2},
{"A", 1},
};
var sortedJson = JsonConvert.SerializeObject(new SortedDictionary<string, int>(unsortedDic));
输出:
{"A":1,"B":2,"Z":3}
答案 3 :(得分:-2)
您可以像这样对字典进行排序:
JsonConvert.SerializeObject(myDict.OrderBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value));