json - 在 swift 中从复杂的 JSON 中获取数据

标签 json swift dictionary tvos tvml

我有一个复杂的 JSON 数据。 我怎样才能解析这些数据? 我已经尝试过了,但还是不行。

我需要一个带有对象(id、时间...)的字典。但是如何通过“1,..”呢? 我怎样才能花时间开始和结束呢?

"data": {

"1":[
    {"id":6524612,
     ...
     "time":{
     "begin":"18:50",
     "end":"19:20"
     },
     ...
     },

"2":[
     {
     "id":6524613,
     ...
     "time":{
     "begin":"18:50",
     "end":"19:20"
     },
     ...
     },

我的错误在哪里?

  let broadcastTask = broadcastSession.dataTaskWithRequest(broadcastRequest) { (data, response, error) -> Void in

        if error != nil {
            print(error.debugDescription)
        } else {
            do {
               let broadcastDict = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments) as? Dictionary<String, AnyObject>
                    if let results = broadcastDict!["data"] as? [Dictionary<String, AnyObject>] {

                        for obj in results {
                            let broadcast = Broadcast(broadcastDict: obj)
                            self.broadcastList.append(broadcast)
                        }


                        //Main UI thread
                        dispatch_async(dispatch_get_main_queue()) {
                            self.collectionView.reloadData()
                        }
                    }

                } catch {

            }

        }

    }

   broadcastTask.resume()

 init(broadcastDict: Dictionary<String, AnyObject>) {

        if let category = broadcastDict["id"] as? Int {
            self.id = id
        }
...
}

最佳答案

如果我正确理解了这个问题: 第一个问题似乎是您试图将“数据”字典转换为字典数组。这总是会失败,因为您的数据对象是字典而不是数组。

一旦你纠正了这个问题,你的循环就会遇到麻烦。试试这个:

for (key, value) in results {
    let broadcast = Broadcast(broadcastDict: value)
    self.broadcastList.append(broadcast)
}

现在您正在发送 Broadcast 对象所需的字典。

关于json - 在 swift 中从复杂的 JSON 中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37215548/

相关文章:

javascript - 将对象内的数组字符串化

swift - 找不到 FirebaseStorage 模块并且已经通过 CocoaPods 导入了它,是否已更改? - swift

ios - Swift 处理大量数据并使用队列正确显示

python - 将 dict 列表转换为 int [Python Codecademy]

python - 使用 Matplotlib 在一张条形图中绘制两个字典

python - 在 python 中向嵌套字典添加新值

android - 在 android 中改造带有 json 数组名称的响应对象

json - Go openweathermap预报返回类型

javascript - 从另一个 json 数组项中查找数组项的索引

ios - 诠释?到 CLBeaconMajorValue