【发布时间】:2016-12-01 02:55:34
【问题描述】:
我正在尝试使用以下方法将 NSDictionary 对象转换为 json 字符串:
let data = try JSONSerialization.data(withJSONObject: data, options :[])
var string = String(data: data, encoding: String.Encoding(rawValue: String.Encoding.utf8.rawValue))
然而,它按字母顺序重新排序各个元素,这就是 Swift 返回的内容:
{"client-nonce":"4q7581q6CbkAlJAAajHuWFiLJTPKJLpk","timestamp":"1480560235","token":"5aeba5cb66644e8e739765632a23f2f98a4035f99306f46777c67cea652dad79","url":"http://api.uselinkthrow.local/api/me/stream/friend/links"}
我想保留字典的制作顺序,因此返回:
{"token":"5aeba5cb66644e8e739765632a23f2f98a4035f99306f46777c67cea652dad79","timestamp":"1480560235","client-nonce":"4q7581q6CbkAlJAAajHuWFiLJTPKJLpk","url":"http://api.uselinkthrow.local/api/me/stream/friend/links"}
有人知道我该怎么做吗?
【问题讨论】:
-
世界就是这样运转的。此外,如果字典键不按顺序会有什么影响?
-
HMAC 哈希值会有所不同
-
"有人知道我该怎么做吗?"你为什么要这样做?如果你能解释原因,那么人们或许能够提供明智的解决方案。如果你真的想这样做,那么字典(单独)是错误的数据结构。您需要一个数组,或者一个数组和字典的组合。字典本质上是无序的。数组是有序的。这适用于 JSON 以及 swift。但是,取决于您对“为什么?”的回答。问题,您最好继续使用字典,然后在需要时将其键操作成某种顺序。
标签: ios json swift dictionary