json - Swift 4 - 访问 Codable 结构的通用 Json 对象

标签 json swift parsing swift4

我的 API 总是返回具有以下结构的 Json:

{
    "data": Object
}

“对象”可以是原始数据(例如字符串)、另一个 Json 对象或 Json 数组。

{
    "data": "string"
}

{
    "data": {
       "id_user": 1
       "name": "name"
    }
}

{
    "data": [{
       "id_user": 1
       "name": "name"
    },
    {
       "id_user": 2
       "name": "name"
    }]
}

如何访问“对象”以便使用 Codable 结构解析它?

最佳答案

好的,我找到了一个解决方案,使用字典。通过这种方式,我可以访问“数据”内容,将其转换为数据,然后使用 Codable 对其进行解析。这是代码:

let json = try JSONSerialization.jsonObject(with: response.data!, options: []) as! [String: Any]
guard let dataKey = json["data"] else {
    throw CustomError.dataNotFound
}
let jsonData = try JSONSerialization.data(withJSONObject: dataKey, options: [])
let result = try JSONDecoder().decode(CodableStruct.self, from: jsonData)

希望对您有所帮助。

关于json - Swift 4 - 访问 Codable 结构的通用 Json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51020084/

相关文章:

ios - 错误: Use the unresolved identifier 'indexPath' in prepareForSeque function

php - 使用 SimpleXML 加载 XML 不返回某些元素的属性

python - 如何正确拆分以下字符串? - Python

java - 如何使用 GSON 将 List 转换为 JSON 对象?

java - 使用JAVA的Gson库解析JSON

java - 初始化错误 - 行应为 ":"

swift IOS 将函数转换为自定义类

javascript - 如何为json数据添加过滤器

ios - 使物理体响应场但不响应其他物理体

c# - C# 中的 IFC 快速模型解析器