0
我試圖解析從以下json觀察風速值作爲一個浮點數(5.586995)。下面的代碼以數組形式返回值([「5.586995」])。這是Swift 3中最好的方法嗎?任何幫助深表感謝。如何正確解析字典數組
{
"properties":{
"platform_type_description":"Weather and Sea Surface Data",
"parameters":[
{
"id":"wind_speed",
"units":"m s-1",
"depth":{
"value":"0",
"units":"m"
},
"observations":{
"times":[
"2017-04-21T14:08:00"
],
"values":[
"5.586995"
],
"quality_levels":[
"3"
]
}
},
{
"id":"wind_speed_of_gust",
"units":"m s-1",
"depth":{
"value":"0",
"units":"m"
},
"observations":{
"times":[
"2017-04-21T14:08:00"
],
"values":[
"7.39788"
],
"quality_levels":[
"3"
]
}
}
]
}
}
func getWind() {
let url = URL(string: "http://windapp.dev/")!
URLSession.shared.dataTask(with: url) { (data:Data?, response:URLResponse?, error:Error?) in
if error == nil {
if data != nil {
do {
let json = try JSONSerialization.jsonObject(with: data!, options: []) as! [String:Any]
guard let properties = json["properties"] as? [String:Any],
let parameters = properties["parameters"] as? [Any],
let windspeedDict = parameters[0] as? [String:Any],
let observationsWindSpeedDict = windspeedDict["observations"] as? [String:[String]]
else {
print("Error!")
return
}
for (key, value) in observationsWindSpeedDict {
if key == "values" {
print(value)
}
}
} catch {}
}
} else {
print("Error: Couldn't connect to server")
}
}.resume()
}
這取決於您的數據模型。你有沒有想過擁有更多或更少的價值? –
顯示你到目前爲止的代碼。如果你有數組將第一個項目轉換爲Double。 – vadian
@PedroCastilho號返回的值將始終爲單個浮點值。 –