ios - 使用 Decodable 解码嵌套对象数组
问题描述
几天前我开始使用 Decodable,我想知道是否可以创建模型“汽车”而无需创建更多模型,具有以下 JSON:
{
"cars": [
{
"id": 1,
"name": "car1"
},
{
"id": 2,
"name": "car2"
},
{
"id": 3,
"name": "car3"
}
],
"pagination": {
"page": 1,
"offset": 20
}
}
我发现的唯一解决方案是创建一个像“Response”这样的“wrappwer”模型,其中包含一个属性为 [Cars]。
有人可以确认我可以解码只有“汽车”模型的这个 JSON 吗?
谢谢你。
此致
解决方案
你可以试试
let str = """
{
"cars": [
{
"id": 1,
"name": "car1"
},
{
"id": 2,
"name": "car2"
},
{
"id": 3,
"name": "car3"
}
],
"pagination": {
"page": 1,
"offset": 20
}
}
"""
do {
let tr = try JSONSerialization.jsonObject(with: Data(str.utf8), options: []) as! [String:Any]
let da = try JSONSerialization.data(withJSONObject: tr["cars"] , options: [])
let res = try JSONDecoder().decode([Car].self, from: da)
print(res)
}
catch {
print(error)
}
struct Car: Codable {
let id: Int
let name: String
}
推荐阅读
- angular - 为什么我不能在 Angular 5 中导入和使用“of”值。其他问题/答案不起作用
- javascript - 使用 javascript SharePoint 2013 在 PeopleOrGroup 字段中插入用户
- python - Keras EarlyStopping:使用哪个 min_delta 和耐心?
- grails - grails 3.3 gorm where 使用投影计数()的查询不同于 list().size()
- unix - 如何一次性有效地将多列数据附加到制表符分隔文件
- python - python最小modbus写浮点字交换
- java - 尝试从 main 调用时在不同的类中“找不到符号”
- html - 使用 CSS(或在最小 JS 的帮助下)对齐多个表的列?
- r - R:从生成的图像中裁剪 shapefile 边界
- java - 类型不适用,我找不到错误