午睡:儿童资源
Siesta: Child resources
我很难理解 Siesta 如何找出资源的子项。例如,我有以下事件资源:
JSON return编者“/events”
{
"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”不会 return 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 { [=12=]["id"].string }
.map(event.child)
我很难理解 Siesta 如何找出资源的子项。例如,我有以下事件资源:
JSON return编者“/events”
{
"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”不会 return 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 { [=12=]["id"].string }
.map(event.child)