Swift:当您不知道键名或值的数据类型时如何使用JSON

时间:2019-06-28 00:37:32

标签: json swift

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

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

已编辑 我的问题中有一些代码没有什么意义,我将其删除,因为它可能对其他人没有帮助。

2 个答案:

答案 0 :(得分:1)

如果您不知道值类型,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]
    }
}

答案 1 :(得分:-1)

使用Charles Web Debugging Proxy捕获您作为请求发送的内容和作为响应获得的内容,并且不要忘记按Shift + Command + P以启用macO代理。