zoukankan      html  css  js  c++  java
  • C# 排序 Json内容排序,按照字母大小进行排序

    话不多说,上代码:

    public static SortedDictionary<string, object> KeySort(JObject obj)
            {
                var res = new SortedDictionary<string, object>();
                foreach (var x in obj)
                {
                    if (x.Value is JValue) res.Add(x.Key, x.Value);
                    else if (x.Value is JObject) res.Add(x.Key, KeySort((JObject)x.Value));
                    else if (x.Value is JArray)
                    {
                        var tmp = new SortedDictionary<string, object>[x.Value.Count()];
                        for (var i = 0; i < x.Value.Count(); i++)
                        {
                            tmp[i] = KeySort((JObject)x.Value[i]);
                        }
                        res.Add(x.Key, tmp);
                    }
                }
                return res;
            }
    var MethodCont = new JObject {
                      new JProperty("deptNo","00000123"),//
                      new JProperty("warehouseNo","1100000001")//
                      ,new JProperty("abcad","")
                       ,new JProperty("abdcaz","")
                        ,new JProperty("1234","")
                        ,new JProperty("0123","")
                        ,new JProperty("0113","")
                    };
    //不排序
    var json2 = JsonConvert.SerializeObject(MethodCont);
    //排序
    var target = KeySort(MethodCont);
    var json = JsonConvert.SerializeObject(target, Formatting.Indented);//缩进

    来吧,展示:

    1:不排序

    {
        "deptNo": "EBU0000000123",
        "warehouseNo": "1100000001",
        "abcad": "",
        "abdcaz": "",
        "1234": "",
        "0123": "",
        "0113": ""
    }

    2:排序,数字也是进行的排序的,

    {
        "0113": "",
        "0123": "",
        "1234": "",
        "abcad": "",
        "abdcaz": "",
        "deptNo": "EBU0000000123",
        "warehouseNo": "1100000001"
    }

    醍醐灌顶系列

    Dictionary<string, string> dic = new Dictionary<string, string>
                        {
                           { "access_token",access_token},
                           { "app_key",app_key },
                           { "method",method },
                           { "timestamp",timestamp },
                           { "v",v },
                         };
    
    var dicOrderby = string.Join("&", dic.OrderBy(p => p.Key).Select(p => $"{p.Key}{p.Value}"));

    这里dic.OrderBy就是进行排序的操作,dic是Dictiopnary类型,是一个字典,字典就是进行排序嘛,按照字母顺序之类的

    排好顺序后,然后就是开始Select所需要的内容了。

    string.Join("&",""),是可以设置链接符

    String.Join 方法 (String, String[])

    方法参考

  • 相关阅读:
    今天的学习
    sql&nbsp;修改字段
    原来这个分类是powerdesigner
    sql&nbsp;sum&nbsp;&nbsp;&nbsp;&nbsp;空或0
    mac 配置maven报zsh: command not found各种坑点走位
    java-Map集合中存入的数组值转存到ArryList集合中的实现
    Java-集合总结之Collection和Map--Map(3)
    Java-集合总结之Collection和Map--Set(2)
    Java-集合总结之Collection和Map--List(1)
    测试-bug跟踪过程中的相关状态英文释义
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/13830528.html
Copyright © 2011-2022 走看看