날씨 API 인 Wunderground에서 날씨 데이터를 가져 오는 Swift 프로젝트를 작성 중입니다. 이제 온도 나 상대 습도와 같은 정보를 추출 할 수 있지만 swift를 사용하여 중첩 목록의 내부 목록에 정보를 저장하는 데 문제가 있습니다. 예를 들어, "current_observation"에 저장된 "display_location.state"정보를 가져올 수 없습니다.Weather API에서 json 데이터 형식으로 저장된 특정 정보를 찾는 방법
다음은 Wunderground에서 제공하는 날씨 정보의 예는 다음과 같습니다
{
"response": {
"version":"0.1",
"termsofService":"http://www.wunderground.com/weather/api/d/terms.html",
"features": {
"conditions": 1
}
}
, "current_observation": {
"image": {
"url":"http://icons.wxug.com/graphics/wu2/logo_130x80.png",
"title":"Weather Underground",
"link":"http://www.wunderground.com"
},
"display_location": {
"full":"San Francisco, CA",
"city":"San Francisco",
"state":"CA",
"state_name":"California",
"country":"US",
"country_iso3166":"US",
"zip":"94101",
"magic":"1",
"wmo":"99999",
"latitude":"37.77500916",
"longitude":"-122.41825867",
"elevation":"47.00000000"
},
"temperature_string":"76.3 F (24.6 C)",
"relative_humidity":"43%",
}
}
여기에 날씨 정보를 추출 내 스위프트 코드 :
var url = NSURL(string:"http://api.wunderground.com/api/56968011acc3e3eb/conditions/q/\(state)/\(city).json")
var data = NSData.dataWithContentsOfURL(url, options: NSDataReadingOptions.DataReadingUncached, error: nil)
var str = NSString(data:data, encoding:NSUTF8StringEncoding)
var json:AnyObject! = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error: nil)
var weatherInfo:AnyObject! = json.objectForKey("current_observation")
var currentTemp: AnyObject! = weatherInfo.objectForKey("temperature_string")
var humidity:AnyObject! = weatherInfo.objectForKey("relative_humidity")
var wind:AnyObject! = weatherInfo.objectForKey("wind_kph")
display.text = "Temperature: \(currentTemp)\nHumidity: \(humidity)\nWind: \(wind)\n"
는 감사가!