如何在链接链中获取JSON数据并将其放到同一模型中?

时间:2017-02-01 23:27:24

标签: ios json swift nsurlsessiondatatask urlsession

我不知道如何正确使用,所以我会在图片中显示。

我首先创建URLSession,从JSON获取数据,包括我想在同一模型中使用的数据的链接。

第一个链接:

SchreenShot

从第一次请求开始,我获得了我想在同一个表中使用的其他信息的链接:

来自第一个链接的链接:

ScreenShot

我正在尝试从第一个和第二个链接获取数据并将它们放在一个数据模型/表格/单元格中。

我需要制作另一个URLSession,但我无法理解如何将信息放在一起。 可以在另一个内部发射一个URLSession吗?有什么建议吗?

3 个答案:

答案 0 :(得分:0)

我建议使用一些库来抽象一些复杂性 - Alamofire / SwiftyJSON

Alamofire.request(url, method: .get).responseJSON { response in
switch response.result {
case .success(let value):
    let json = JSON(value)
    //pull your links out of the json and make another request here
    Alamofire.request(json["fixtures"]["competition"]["href"], method: .get).responseJSON { response in
       switch response.result {
          case .success(let value): 
          let json2 = JSON(value)
          //handle the json from your second request
        }
   }
}

请记住,这是伪代码。不要试图剪切和粘贴 - 但它应该让你朝着大方向前进。

答案 1 :(得分:0)

创建一个job queue,您可以将任务(=检索数据)放入其中。

使用root url调用启动队列。当它从异步调用返回时,解析JSON数据 - 将本地结构填充为数据持有者。以及随后关注的1或2个链接。

可能还记得数组中已检索到的网址,这样您就可以检查一下您是否读过一些数据。

注意:api网站上有一个呼叫率限制。如果您创建一个公共应用程序,那么您应该考虑如何将所有调用的服务器缓存为50 / 24h或50 / 1min

答案 2 :(得分:0)

我认为我找到了解决方案,应该使用'调度组'。