午睡:子资源



我很难理解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)

相关内容

  • 没有找到相关文章

最新更新