首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Swift解码密钥以数字开头的json

Swift解码密钥以数字开头的json
EN

Stack Overflow用户
提问于 2019-06-27 02:37:43
回答 2查看 435关注 0票数 2

我有一个如下格式的json:

代码语言:javascript
复制
let json = """
{
    "stuff": {
        "1": "one",
        "2": "two",
        "4": "four"
    }
}

问题是我怎样才能让我的

代码语言:javascript
复制
struct Stuff: Codable, Equatable {
    let 1: String
    let 2: String
    let 4: String
}

编译和工作?

我过去常常用下面的方法来调用它,它对所有东西都很有效,但是如果name以number开头,它显然不会被编译

代码语言:javascript
复制
let obj = try? JSONDecoder().decode(T.self, from: data)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-27 02:44:06

不能。变量不能以数字字符开头。不可改变的规则。

但是您可以使用CodingKeys映射这些名称

代码语言:javascript
复制
struct Stuff: Codable, Equatable {
    let one, two, four: String

    private enum CodingKeys : String, CodingKey { case one = "1",  two = "2", four = "4"}
}
票数 3
EN

Stack Overflow用户

发布于 2019-06-27 02:57:11

JSON的RFC 7159标准规定对象键必须是字符串。

代码语言:javascript
复制
object = begin-object [ member *( value-separator member ) ]
           end-object

member = string name-separator value
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56779161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档