我想从我在服务器响应中收到的 json 中迭代日期

Posted

技术标签:

【中文标题】我想从我在服务器响应中收到的 json 中迭代日期【英文标题】:i want to iterate the dates from the json i am receiving in the server response 【发布时间】:2018-04-19 08:04:52 【问题描述】:

我收到来自服务器的响应,其中包含我想要迭代的显示日期,我该怎么做。问题是键“实例”具有对象的值,并且该对象包含我要存储的日期的键值对。请帮忙

这是 JSON 响应:


    "data": [
        
            "id": "XYFYyvu2bckt",
            "theater_id": "clzEVgztkcWB",
            "theater_audi_id": "N9iDgooiCW6N",
            "movie_lang_id": "B9x98d4IEpCt",
            "booking_start_date": null,
            "instances": 
                "2018-04-18": [
                    
                        "id": "vpcr2c9N12tL",
                        "show_time": "20:30:00"
                    
                ],
                "2018-04-19": [
                    
                        "id": "X9kPcU7SLzrC",
                        "show_time": "20:30:00"
                    
                ],
                "2018-04-20": [
                    
                        "id": "pFnFtXO5jKWp",
                        "show_time": "20:30:00"
                    
                ],
                "2018-04-21": [
                    
                        "id": "hQuBFADUHeyS",
                        "show_time": "20:30:00"
                    
                ],
                "2018-04-22": [
                    
                        "id": "vzXzOZvvKf9F",
                        "show_time": "20:30:00"
                    
                ],
                "2018-04-23": [
                    
                        "id": "kAhzwyqoVGF4",
                        "show_time": "20:30:00"
                    
                ],
                "2018-04-24": [
                    
                        "id": "wVXRjq6LrZJm",
                        "show_time": "20:30:00"
                    
                ],
                "2018-04-25": [
                    
                        "id": "6hA1qglyP1Hf",
                        "show_time": "20:30:00"
                    
                ],
                "2018-04-26": [
                    
                        "id": "NoLPN8RQNRXV",
                        "show_time": "20:30:00"
                    
                ]
            
        
    ]

这是我尝试过的:

  _ = URLSession.shared.dataTask(with: request)  (Data, response, error) in
            if Data != nil
                do
                    let access = try JSONSerialization.jsonObject(with: Data!, options: []) as! [String:NSArray]
                    Completion(access)
                    for i in access["data"]!
                        let a = i

                        let b = try JSONSerialization.data(withJSONObject: a as Any, options: .prettyPrinted)

                        let d = try JSONSerialization.jsonObject(with: b, options: []) as! [String: Any]
                        let e = d["instances"]

                        for (key, timeObj)  in d["instances"]
                            print(key)
                        

                    
                catch let e
                    print(e)
                
            
            .resume()

【问题讨论】:

你有什么尝试吗?因为 JSON,只是字典、数组、字符串和数字。基本的开发人员技能都没有。 我是 swift 新手,我已经编辑了我的问题以便更好地理解 b & d 的意义何在?不要在 Swift 3+ 中使用 NSArray。学习调试:哪些行有效?哪个没有?然后带着这些信息回到这里。 ...并且不要使用Data(大写)作为变量名。它可能与 Swift 3+ Data 结构冲突。 【参考方案1】:

你可以试试

let access = try JSONSerialization.jsonObject(with: Data!, options: []) as! [String:Any] 
if let data = access["data"] as? [[String:Any]] , let instances = data[0]["instances"] as? [String:Any] 
  print(instances)

【讨论】:

以上是关于我想从我在服务器响应中收到的 json 中迭代日期的主要内容,如果未能解决你的问题,请参考以下文章

我想从我自己的服务器而不是 java worldwind 中的 nasa 服务器获取数据

迭代 JSON,快速

使用AngularJS中的重复键迭代json响应[重复]

如何使用两个日期选择器从我的数据库中获取数据。代码点火器

如何快速获取响应 JSON

如何使用下面的类从web服务中动态读取下面给出的JSON数据,并为收到的数据创建水平列表视图。