午睡:儿童资源

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)