【发布时间】:2018-06-01 09:58:50
【问题描述】:
是否可以将 Swift JSON 编码器配置为使用结构属性的排序顺序作为 JSON 输出中字典键的排序顺序?默认情况下,它使用一些任意(但看似非随机)的顺序,例如...
struct Example: Codable {
let id: Int
let name: String
let createdAt: Date
let comments: [String]
}
...结果...
"example" : {
"id" : 1,
"name" : "Test",
"comments" : [
"Comment 1",
"Comment 2"
],
"createdAt" : 549539643.25327206
}
我知道在语义上顺序无关紧要,但我想保留它以用于调试目的。
【问题讨论】:
-
不按结构属性的顺序,但
let encoder = JSONEncoder(); encoder.outputFormatting = .sortedKeys可能就足够了。 -
@vadian 你的评论和我的回答之间只有几分之一秒的差异:)
-
是的,我知道那个设置,但我真的很想保留结构顺序,例如将“id”作为第一个属性。
-
短篇小说:合成编码器无法做到这一点。
-
@vadian 是对的