【问题标题】:Swift: How to write JSON as a struct?Swift:如何将 JSON 编写为结构?
【发布时间】:2021-07-05 18:41:32
【问题描述】:

我有一个非常简单的 JSON 文件,看起来像这样,但我怎样才能将它写成 Swift 结构呢?

这样对吗?

struct SomeName: Codable {
    var action = [String: [String: String]]()
    var trigger = [String: [String: String]]()
}

【问题讨论】:

    标签: ios json


    【解决方案1】:

    你可以这样做。

    首先,我将 JSON 转换为数据,以便可以对其进行解码。

    其次,由于 JSON 中有两个属性,动作和触发器,我创建了两个与属性匹配的嵌套结构。在第二个 struct Trigger 中,我们需要使用自定义编码键,因为 Swift 按照惯例使用驼峰式,并且您不能在变量名中使用 -

    import Foundation
    
    let data = """
    [
        {
            "action": {
                "type": "block"
            },
            "trigger": {
                "url-filter": "apple.com"
            }
        }
    ]
    """.data(using: .utf8)!
    
    struct SomeName: Codable {
        
        struct Action: Codable {
            let type: String
        }
        
        struct Trigger: Codable {
            let urlFilter: String
            
            enum CodingKeys: String, CodingKey {
                case urlFilter = "url-filter"
            }
        }
        
        let action: Action
        let trigger: Trigger
    }
    
    do {
        let result = try JSONDecoder().decode([SomeName].self, from: data)
    } catch {
        print(error)
    }
    
    
    

    将上面的代码放到 Playground 中,应该可以工作了。

    【讨论】:

    • 感谢您的快速响应,代码运行顺利@Andrew
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    相关资源
    最近更新 更多