json - Swift:当您不知道键的名称或值的数据类型时如何使用 JSON
问题描述
在不知道键的名称或值的数据类型的情况下,我无法解决如何使用 JSON 的问题。每次我获取数据时,JSON 都会有不同的键和不同的数据类型。我一直在尝试使用泛型来执行此操作,但没有取得太大成功。
如果其他人已经问过这个问题,我很抱歉。我进行了搜索,但找不到关于如何在 SDK 中使用动态 JSON 的良好解释。
编辑 我的问题中有一些没有多大意义的代码,我已将其删除,因为它可能对其他人无济于事。
解决方案
如果您不知道值类型、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]
}
}
推荐阅读
- azure-devops - 将对象传递到 Azure DevOps 管道中的模板
- tuples - 元组超出索引
- maven - 在本地获取“由于缺少执行数据文件而跳过 JaCoCo 执行”
- r - 尝试使用 {r results='asis'} knitr::kable(Education) 用表格呈现 Rmarkdown
- java - 如何在 Springboot 中添加具有 2 个字段的多个文件
- flutter - ExpansionTile 标题颜色在扩展时发生变化
- android - Expo start 无法 adb reverse:adb.exe:错误:设备脱机
- javascript - 如何从 xpub 导出 BTC m44 地址?
- python - 为什么我不能将 unicode 字符串转换为纯 python 字符串?
- python-3.x - 我们可以使用 numpy 数组作为输入在 make_column_transform() 内部对文本数据执行 Tfidfvectorizer() 吗?