C# 字典到 json - 自动排序

Posted

技术标签:

【中文标题】C# 字典到 json - 自动排序【英文标题】:C# dictionary to json - sorts automatically 【发布时间】:2013-11-18 08:36:03 【问题描述】:

我在 MVC 中工作。这是一个 $.AJAX 帖子,我正在返回一个字典,它已经按键降序排序。然后我将此字典作为 JSON 结果传递。

但在浏览器中,我得到的是同一个字典,但按键升序排序。

是否有任何原因导致它以其他方式排序,或者如果这是任何问题,请告诉我我应该怎么做才能获得具有相同排序顺序的字典。

我已经用谷歌搜索了,但没有找到与此相关的任何内容。

问候, 文卡特森R

【问题讨论】:

如果无法保证枚举顺序,如何对字典进行排序? 【参考方案1】:

字典没有排序。这没关系,因为 JSON 对象(以及相应的 javascript 对象)也是 无序1maps 的键/值对。

改为使用 JSON 数组(例如映射到 List)来维护有序序列。


1 不幸的是,返回的数据(或可能显示的)按特定顺序排序,因为没有这样的保证。

另见:

C# 字典:Why is a Dictionary "not ordered"? JSON 对象:Is the order of elements in a JSON list maintained? JavaScript 对象:Does JavaScript Guarantee Object Property Order?

【讨论】:

这可能不是巧合,但无论如何不能保证,所以你不应该假设它会按升序排序。

以上是关于C# 字典到 json - 自动排序的主要内容,如果未能解决你的问题,请参考以下文章

C# 如何对json格式的字符串进行字典排序?

c# 对json串排序

如何从 json 字典自动创建模型类(NSObject)?

Json 到字典 C# Unity

python接口自动化测试十:字典字符串json之间的简单处理

Python接口自动化(二) 发送post请求的接口;python中字典和json的区别