【发布时间】:2018-08-22 21:01:51
【问题描述】:
我正在尝试从 JSON 响应创建一些数组。我正在使用 Alamofire 对象映射器。我不确定我是否正确映射对象。
这是我的 JSON 响应
{
"status": "success",
"data": [
{
"id": 1,
"name": "EXERCISE",
"parent_id": null,
"children": [
{
"id": 2,
"name": "All Exercises",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 3,
"name": "Warmup",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 4,
"name": "Pliés",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 5,
"name": "Tendus (Slow)",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 6,
"name": "Tendus (Fast)",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 7,
"name": "Dégagés (Slow)",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 8,
"name": "Dégagés (Fast)",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 9,
"name": "Petits Battements",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 10,
"name": "Ronds de Jambe",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 11,
"name": "Adage",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 12,
"name": "Frappés",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 13,
"name": "Fondus",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 14,
"name": "Grands Battements",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 15,
"name": "Rises",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 16,
"name": "Stretch",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 17,
"name": "Tendus (Centre)",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 18,
"name": "Adage/PDB (Centre)",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 19,
"name": "Relevés",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 20,
"name": "Pirouettes",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 21,
"name": "Petit Allegro",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 22,
"name": "Medium Allegro",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 23,
"name": "Grand Allegro",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 24,
"name": "Men’s Allegro",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 25,
"name": "Traveling Centre (Odd Bits)",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 26,
"name": "Coda",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 27,
"name": "Révérence/Cool Down",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
}
],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 28,
"name": "LENGTH",
"parent_id": null,
"children": [
{
"id": 29,
"name": "All Lengths",
"parent_id": 28,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 30,
"name": "Short (__x4)",
"parent_id": 28,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 31,
"name": "Medium (__x8)",
"parent_id": 28,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 32,
"name": "Long (__x16)",
"parent_id": 28,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 33,
"name": "Marathon (__x32)",
"parent_id": 28,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 34,
"name": "Other",
"parent_id": 28,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
}
],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
}
]
}
这是我的模型类的 sn-p
var Lid: Int?
var Fid: Int?
var Lname: String!
var Fname: String!
public override func mapping(map: Map) {
super.mapping(map: map)
Lid <- map["data.id"]
Lname <- map["data.name"]
Fid <- map["data.children.id"]
Fname <- map["data.children.name"]
}
当我调试时 - 我的模型类的属性为零。我怎么能接受这个响应并最终得到 Lid 和 Lname 数组?
【问题讨论】:
-
键
children的值也是一个数组(包含多个对象)。请注意 JSON 中的[]。你必须重构你的模型。 -
@vadian 所以 data.children.id 不是访问 children 数组中 id 键的正确方法吗?
标签: ios json swift alamofire objectmapper