• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#排序JSON内容排序,按照字母大小进行排序

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

话不多说,上代码:

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[])

 

方法参考

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#使用TASK处理多任务同时处理发布时间:2022-07-13
下一篇:
C#编程(七十五)----------C#使用指针发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap