我很难理解Siesta如何计算出资源的子节点。例如,我有以下事件资源:
"/events"返回的JSON
{
"success": 1,
"events": [
{
"id": 1,
"type": "meeting",
"eventDate": "2015-08-20",
"notes": "fadsfasfa",
"title": null
},{
"id": 2,
"type": "game",
"eventDate": "2015-08-31",
"notes": "fdsafdf",
"title": null
}
]
}
遗憾的是,调用"/events/1"并不会返回id=2的事件。有没有办法告诉Siesta哪个事件有id=2?
假设有:
let events = myService.resource("/events")
然后您可以像这样从/events
资源导航到/events/2
资源:
let event = events.child("2")
这将给你相同的对象,如果你要求myService.resource("/events/2")
。
要从JSON中提取2
,请使用正常的Swift JSON解析技术。(Siesta不应用任何特殊的检查或解释JSON一旦它被解析。)我建议使用SwiftyJSON库来简化JSON遍历。例如,它允许您执行以下操作来提取这些事件id并获得子资源:
let allEventResources =
JSON(events.jsonDict)["events"]
.arrayValue
.flatMap { $0["id"].string }
.map(event.child)