几天前我开始使用Decodable,我想知道是否可以创建具有以下JSON的模型“ Car”而不创建其他模型:
{
"cars": [
{
"id": 1,
"name": "car1"
},
{
"id": 2,
"name": "car2"
},
{
"id": 3,
"name": "car3"
}
],
"pagination": {
"page": 1,
"offset": 20
}
}
我发现的唯一解决方案是创建一个“包装程序”模型,如“响应”,其中包含[Cars]属性。
有人可以确认我仅使用“汽车”模型就可以解码此JSON吗?
谢谢。
最诚挚的问候
答案 0 :(得分:1)
您可以尝试
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
}