NSDictionnary에서 json 데이터로 특정 값을 가져오고 싶습니다. "windspeedMiles"키의 첫 번째 값 (예 : current_condition) 만 가져 오려고합니다. 내가 가져했습니다 내 JSON 데이터는 다음과 같습니다 여기 NSDictionnary로 특정 Json 데이터 가져 오기
{
"data": {
"nearest_area": [
{
"distance_miles": "0.0",
"latitude": "54.500",
"longitude": "-8.500"
}
],
"request": [
{
"query": "Lat 54.50 and Lon -8.50",
"type": "LatLon"
}
],
"weather": [
{
"date": "2014-12-09",
"hourly": [
{
"cloudcover": "59",
"humidity": "84",
"precipMM": "0.1",
"pressure": "1024",
"sigHeight_m": "3.1",
"swellDir": "290",
"swellHeight_m": "3.0",
"swellPeriod_secs": "12.6",
"tempC": "5",
"tempF": "41",
"time": "0",
"visibility": "10",
"waterTemp_C": "12",
"waterTemp_F": "53",
"weatherCode": "116",
"weatherIconUrl": [
{
"value": "http:\/\/cdn.worldweatheronline.net\/images\/wsymbols01_png_64\/wsymbol_0002_sunny_intervals.png"
}
],
"winddir16Point": "SSW",
"winddirDegree": "204",
"windspeedKmph": "34",
"windspeedMiles": "21"
},
{
"cloudcover": "84",
"humidity": "87",
"precipMM": "0.1",
"pressure": "1020",
"sigHeight_m": "0.6",
"swellDir": "240",
"swellHeight_m": "0.1",
"swellPeriod_secs": "12.4",
"tempC": "6",
"tempF": "42",
"time": "300",
"visibility": "10",
"waterTemp_C": "12",
"waterTemp_F": "53",
"weatherCode": "119",
"weatherIconUrl": [
{
"value": "http:\/\/cdn.worldweatheronline.net\/images\/wsymbols01_png_64\/wsymbol_0003_white_cloud.png"
}
],
"winddir16Point": "SSW",
"winddirDegree": "193",
"windspeedKmph": "45",
"windspeedMiles": "28"
},
{
"cloudcover": "75",
"humidity": "91",
"precipMM": "0.4",
"pressure": "1016",
"sigHeight_m": "3.1",
"swellDir": "290",
"swellHeight_m": "3.0",
"swellPeriod_secs": "11.3",
"tempC": "7",
"tempF": "44",
"time": "600",
"visibility": "2",
"waterTemp_C": "12",
"waterTemp_F": "53",
"weatherCode": "266",
"weatherIconUrl": [
{
"value": "http:\/\/cdn.worldweatheronline.net\/images\/wsymbols01_png_64\/wsymbol_0017_cloudy_with_light_rain.png"
}
],
"winddir16Point": "SSW",
"winddirDegree": "193",
"windspeedKmph": "54",
"windspeedMiles": "34"
},
{
"cloudcover": "0",
"humidity": "93",
"precipMM": "0.8",
"pressure": "1011",
"sigHeight_m": "1.0",
"swellDir": "250",
"swellHeight_m": "0.2",
"swellPeriod_secs": "10.6",
"tempC": "16",
"tempF": "61",
"time": "900",
"visibility": "10",
"waterTemp_C": "12",
"waterTemp_F": "53",
"weatherCode": "113",
"weatherIconUrl": [
{
"value": "http:\/\/cdn.worldweatheronline.net\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png"
}
],
"winddir16Point": "SSW",
"winddirDegree": "202",
"windspeedKmph": "62",
"windspeedMiles": "39"
},
{
"cloudcover": "98",
"humidity": "95",
"precipMM": "6.6",
"pressure": "1006",
"sigHeight_m": "3.7",
"swellDir": "290",
"swellHeight_m": "3.6",
"swellPeriod_secs": "11.0",
"tempC": "18",
"tempF": "65",
"time": "1200",
"visibility": "7",
"waterTemp_C": "12",
"waterTemp_F": "53",
"weatherCode": "302",
"weatherIconUrl": [
{
"value": "http:\/\/cdn.worldweatheronline.net\/images\/wsymbols01_png_64\/wsymbol_0018_cloudy_with_heavy_rain.png"
}
],
"winddir16Point": "SW",
"winddirDegree": "220",
"windspeedKmph": "64",
"windspeedMiles": "40"
},
{
"cloudcover": "89",
"humidity": "95",
"precipMM": "8.3",
"pressure": "1003",
"sigHeight_m": "4.3",
"swellDir": "290",
"swellHeight_m": "4.0",
"swellPeriod_secs": "10.9",
"tempC": "19",
"tempF": "65",
"time": "1500",
"visibility": "5",
"waterTemp_C": "12",
"waterTemp_F": "53",
"weatherCode": "308",
"weatherIconUrl": [
{
"value": "http:\/\/cdn.worldweatheronline.net\/images\/wsymbols01_png_64\/wsymbol_0018_cloudy_with_heavy_rain.png"
}
],
"winddir16Point": "SW",
"winddirDegree": "234",
"windspeedKmph": "60",
"windspeedMiles": "38"
},
{
"cloudcover": "49",
"humidity": "73",
"precipMM": "1.5",
"pressure": "1004",
"sigHeight_m": "5.7",
"swellDir": "290",
"swellHeight_m": "5.3",
"swellPeriod_secs": "10.8",
"tempC": "7",
"tempF": "45",
"time": "1800",
"visibility": "10",
"waterTemp_C": "12",
"waterTemp_F": "53",
"weatherCode": "353",
"weatherIconUrl": [
{
"value": "http:\/\/cdn.worldweatheronline.net\/images\/wsymbols01_png_64\/wsymbol_0009_light_rain_showers.png"
}
],
"winddir16Point": "W",
"winddirDegree": "261",
"windspeedKmph": "66",
"windspeedMiles": "41"
},
{
"cloudcover": "58",
"humidity": "73",
"precipMM": "0.5",
"pressure": "1005",
"sigHeight_m": "7.2",
"swellDir": "290",
"swellHeight_m": "6.7",
"swellPeriod_secs": "10.6",
"tempC": "5",
"tempF": "42",
"time": "2100",
"visibility": "10",
"waterTemp_C": "12",
"waterTemp_F": "53",
"weatherCode": "353",
"weatherIconUrl": [
{
"value": "http:\/\/cdn.worldweatheronline.net\/images\/wsymbols01_png_64\/wsymbol_0009_light_rain_showers.png"
}
],
"winddir16Point": "W",
"winddirDegree": "260",
"windspeedKmph": "79",
"windspeedMiles": "49"
}
],
"maxtempC": "19",
"mintempC": "5"
}
]
}
}
내 코드입니다 :
Reports.m :
#import "Reports.h"
@interface Reports()
@end
@implementation Reports
- (void)viewDidLoad
{
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:@"http://api.worldweatheronline.com/free/v2/weather.ashx?q=Bundoran&format=json&num_of_days=5&key=e1caa114b7fba6f5bcea272e1fc77"];
NSData *data = [NSData dataWithContentsOfURL:url];
NSDictionary *dico = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
NSDictionary *wind = [dico objectForKey:@"windspeedMiles"];
NSLog(@"The current windspeedMiles is : %@", wind);
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
좋아. 질문이 뭐야? – Madbreaks
@Madbreaks "windspeedMiles"키의 첫 번째 값 (예 : current_condition) 만 가져 오려고합니다. 내 NSLog가 "nil"을 보내면 current_condition의 값 즉, "19"가 표시됩니다. – Viny76
그럼 JSON 레이아웃이 있습니다. Objective-C 객체 레이아웃은 NSJSONSerialization으로 파싱 한 후에도 동일합니다. 그냥 레벨을 통해 액세스하고 데이터를 얻을. –