我有一个如下格式的json:
let json = """
{
"stuff": {
"1": "one",
"2": "two",
"4": "four"
}
}
问题是我怎样才能让我的
struct Stuff: Codable, Equatable {
let 1: String
let 2: String
let 4: String
}
编译和工作?
我过去常常用下面的方法来调用它,它对所有东西都很有效,但是如果name以number开头,它显然不会被编译
let obj = try? JSONDecoder().decode(T.self, from: data)
发布于 2019-06-27 02:44:06
不能。变量不能以数字字符开头。不可改变的规则。
但是您可以使用CodingKeys
映射这些名称
struct Stuff: Codable, Equatable {
let one, two, four: String
private enum CodingKeys : String, CodingKey { case one = "1", two = "2", four = "4"}
}
发布于 2019-06-27 02:57:11
JSON的RFC 7159标准规定对象键必须是字符串。
object = begin-object [ member *( value-separator member ) ]
end-object
member = string name-separator value
https://stackoverflow.com/questions/56779161
复制相似问题