首页 > 解决方案 > Swift:当您不知道键的名称或值的数据类型时如何使用 JSON

问题描述

在不知道键的名称或值的数据类型的情况下,我无法解决如何使用 JSON 的问题。每次我获取数据时,JSON 都会有不同的键和不同的数据类型。我一直在尝试使用泛型来执行此操作,但没有取得太大成功。

如果其他人已经问过这个问题,我很抱歉。我进行了搜索,但找不到关于如何在 SDK 中使用动态 JSON 的良好解释。

编辑 我的问题中有一些没有多大意义的代码,我已将其删除,因为它可能对其他人无济于事。

标签: jsonswift

解决方案


如果您不知道值类型、json 包含多少个值或属性的名称,为什么不将 json 字符串解析为字典,然后遍历该字典的键并查找您想要的内容. 像这样的东西:

if let dict = "Your json response".toDictionary(){
            for (key, value) in dict.enumerated(){
                //Do something with key || value
            }
        }

extension String {
    func toDictionary() -> [String: Any]? {
        return try? JSONSerialization.jsonObject(with: data(using: .utf8)! , options: []) as? [String: Any]
    }
}

推荐阅读