public static string SortJson(string json)
{
var dic = JsonConvert.DeserializeObject>(json);
SortedDictionary keyValues = new SortedDictionary(dic);
keyValues.OrderBy(m => m.Key);
SortedDictionary tempKeyValues = new SortedDictionary(keyValues);
foreach (KeyValuePair kv in tempKeyValues)
{
if (kv.Value == null)
{
continue;
}
Type t0 = typeof(JObject);
Type t1 = typeof(JArray);
Type t2 = kv.Value.GetType();
if (t0 == t2)
{
// value是JObject类型
string jsonItem = JsonConvert.SerializeObject(kv.Value);
jsonItem = SortJson(jsonItem);
keyValues[kv.Key] = JsonConvert.DeserializeObject(jsonItem);
}
else if (t1 == t2)
{
// value是JArray类型
foreach (var item in JsonConvert.DeserializeObject(kv.Value.ToString()))
{
string jsonItem = JsonConvert.SerializeObject(item);
jsonItem = SortJson(jsonItem);
keyValues[kv.Key] = JsonConvert.DeserializeObject(jsonItem);
}
}
}
return JsonConvert.SerializeObject(keyValues);
}