json - 使用以数字开头的 key 快速解码 json

标签 json swift

我有一个以下格式的 json:

let json = """
{
    "stuff": {
        "1": "one",
        "2": "two",
        "4": "four"
    }
}

问题是我该如何制作

struct Stuff: Codable, Equatable {
    let 1: String
    let 2: String
    let 4: String
}

编译并运行?

我习惯用下面的方式调用它,它对所有东西都工作得很好,但是如果让 name 以数字开头,它显然不会编译

let obj = try? JSONDecoder().decode(T.self, from: data)

最佳答案

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

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

struct Stuff: Codable, Equatable {
    let one, two, four: String

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

关于json - 使用以数字开头的 key 快速解码 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56779161/

相关文章:

java - Jersey Web 应用程序类似 cron 的任务

java - 快速、轻量级的 XML 解析器

在 tableview 上调用 selectRowAtIndexPath 时出现 Swift 错误

swift - Kotlin 属性初始化(就像 swift 使用闭包)

c# - 使用 JsonConverter 的 Json.NET 自定义序列化 - 如何获得 "default"行为

java - 使用Java创建JSON数据NVD3图表

json - 如何在 `jq` 中转义单引号

ios - 我应该使用 CharacterSet 还是 URLQueryItem?

Swift 泛型 - 协议(protocol)不符合协议(protocol)

ios - UITableView 单元格不显示删除菜单