Swift JSON解码器API(SwiftyJSON)

时间:2019-01-16 17:58:06

标签: ios json swift

在PHP中,我可以创建JSON并将其解码为代码中的数组。在Swift中有类似的东西吗?

我的PHP API提供了以下JSON:

{
    "1": {
        "cd_sala": "1",
        "nm_sala": "Treinamento de Teste"
    },
    "2": {
        "cd_sala": "2",
        "nm_sala": "Teste 2"
    }
}

我可以像在PHP中一样在Swift中使用它吗?也许使用“ json_decode”功能?

我已经搜索了一些函数来执行此操作,但无法使其正常工作。我尝试使用JSONDecoder和SwiftyJSON。

===================

编辑

===================

当我将JSON解码器更改为:

[{
    "cd_sala": "1",
    "nm_sala": "Treinamento de Teste"
}, {
    "cd_sala": "2",
    "nm_sala": "Teste 2"
}]

问题是我希望在其上使用增量键...

1 个答案:

答案 0 :(得分:1)

这实际上很容易。首先为字典项定义一个结构,如下所示:

struct Item: Codable {
    let cd_sala: String
    let nm_sala: String
}

然后为JSONDecoder创建一个实例:

let decoder = JSONDecoder()

并用它来解码数据

let object = try decoder.decode(Dictionary<Int, Item>.self, from: /* data */)

Dictionary<Int, Item>是指默认的哈希表(键,值)类,它使您可以访问以下项:

// outputs "Treinamento de Teste"
print(object[1]!.nm_sala)