我有JSON数据,我想从下面的结构中获取数据-我想获取时间值,在这种情况下为String:“ 04:35:00”并将所有这些时间值附加到我的Hours模型中。
{
"result": [
{
"values": [
{
"value":"null",
"key":"symbol_2"
},
{
"value":"null",
"key":"symbol_1"},
{
"value":"016",
"key":"company"
},
{
"value":"QUW12DO",
"key":"direction"
},
{
"value":"TD-4WYS",
"key":"road"
},
{
"value":"04:35:00",
"key":"time"
}]},
//通过如下代码:
URLSession.shared.dataTask(with: (url as URL?)!, completionHandler: {(data, response, error) -> Void in
if let jsonObj = try? JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? NSDictionary {
print(jsonObj!.value(forKey: "result")!)
if let stopsArray = jsonObj!.value(forKey: "result") as? NSArray {
for stop in stopsArray{
if let stopDict = stop as? NSDictionary {
let hours = stopDict.value(forKey: "time")
let myModel = Hours(hours: hours as? String)
self.list.append(myModel)
print("LIST: \(self.list)")
DispatchQueue.main.async {
self.actInd.stopAnimating()
self.actInd.isHidden = true
self.containerLittle.isHidden = true
self.loadingView.isHidden = true
}
}
}
}
}
}).resume()
此刻,当我将代码附加到模型时,到处都是零。如何获取时间值进行建模?
答案 0 :(得分:1)
您拥有更复杂的JSON结构。您的JSON是包含字典数组的字典数组。尝试以下代码:
typealias JSONDict = Dictionary<String, Any>
typealias JSONArray = Array<Any>
if let result = jsonObj?["result"] as? JSONArray {
for case let value as JSONDict in result {
if let values = value["values"] as? JSONArray {
for case let value as [String : String] in values {
if let timeString = value["value"], value["key"] == "time" {
// Create your Hours model
print(timeString)
// Use break only if you have single "time" member in "values" array
//break
}
}
// Use break only if you have single "values" member in "result" array
//break
}
}
}