0

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

4

1 回答 1

0

假设你有:

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)
于 2015-10-16T14:24:41.173 回答