本文介绍了使用NSJSONSerialization来解析JSON的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在这方面已经发生了太多的讨论,但我无法弄清楚如何解决我的问题。
Too many discussions have happened on this and yet I can't figure out how to solve my problem.
这是我从WorldWeatherOnline获得的JSON数据。 JSON有效。但我无法弄清楚如何解析它。这是我的代码,后面是JSON。请帮忙!
Here's the JSON data I get from WorldWeatherOnline. The JSON is valid. But I can't figure out how to parse it. This is my code, followed by the JSON. Please help!
NSError* errorInfo;
NSDictionary *parsedJSON = [NSJSONSerialization JSONObjectWithData:self.wwoWeatherData options:kNilOptions error:&errorInfo];
NSArray* temp = [parsedJSON objectForKey:@"temp_C"];
NSLog(@"%@", temp);
{
"data":{
"current_condition":[
{
"cloudcover":"0",
"humidity":"82",
"observation_time":"11:07 PM",
"precipMM":"0.0",
"pressure":"1024",
"temp_C":"16",
"temp_F":"61",
"visibility":"10",
"weatherCode":"113",
"weatherDesc":[
{
"value":"Clear"
}
],
"weatherIconUrl":[
{
"value":"http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0008_clear_sky_night.png"
}
],
"winddir16Point":"NNE",
"winddirDegree":"30",
"windspeedKmph":"11",
"windspeedMiles":"7"
}
],
"request":[
{
"query":"Lat 48.85 and Lon 2.35",
"type":"LatLon"
}
],
"weather":[
{
"date":"2012-09-04",
"precipMM":"0.0",
"tempMaxC":"25",
"tempMaxF":"77",
"tempMinC":"14",
"tempMinF":"57",
"weatherCode":"113",
"weatherDesc":[
{
"value":"Sunny"
}
],
"weatherIconUrl":[
{
"value":"http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png"
}
],
"winddir16Point":"N",
"winddirDegree":"5",
"winddirection":"N",
"windspeedKmph":"13",
"windspeedMiles":"8"
},
{
"date":"2012-09-05",
"precipMM":"0.0",
"tempMaxC":"22",
"tempMaxF":"72",
"tempMinC":"10",
"tempMinF":"50",
"weatherCode":"113",
"weatherDesc":[
{
"value":"Sunny"
}
],
"weatherIconUrl":[
{
"value":"http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png"
}
],
"winddir16Point":"NNE",
"winddirDegree":"25",
"winddirection":"NNE",
"windspeedKmph":"20",
"windspeedMiles":"13"
},
{
"date":"2012-09-06",
"precipMM":"0.0",
"tempMaxC":"22",
"tempMaxF":"71",
"tempMinC":"11",
"tempMinF":"51",
"weatherCode":"113",
"weatherDesc":[
{
"value":"Sunny"
}
],
"weatherIconUrl":[
{
"value":"http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png"
}
],
"winddir16Point":"NE",
"winddirDegree":"42",
"winddirection":"NE",
"windspeedKmph":"15",
"windspeedMiles":"10"
},
{
"date":"2012-09-07",
"precipMM":"0.0",
"tempMaxC":"24",
"tempMaxF":"75",
"tempMinC":"13",
"tempMinF":"55",
"weatherCode":"116",
"weatherDesc":[
{
"value":"Partly Cloudy"
}
],
"weatherIconUrl":[
{
"value":"http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0002_sunny_intervals.png"
}
],
"winddir16Point":"ENE",
"winddirDegree":"56",
"winddirection":"ENE",
"windspeedKmph":"13",
"windspeedMiles":"8"
},
{
"date":"2012-09-08",
"precipMM":"0.0",
"tempMaxC":"26",
"tempMaxF":"78",
"tempMinC":"16",
"tempMinF":"61",
"weatherCode":"113",
"weatherDesc":[
{
"value":"Sunny"
}
],
"weatherIconUrl":[
{
"value":"http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png"
}
],
"winddir16Point":"ENE",
"winddirDegree":"76",
"winddirection":"ENE",
"windspeedKmph":"9",
"windspeedMiles":"6"
}
]
}
}
推荐答案
您解析的json包含一个名为 data $ c的字典$ C>。在该字典中是一个
current_condition
的数组。继续向下钻取数据结构以找到您要查找的属性:
Your json that you parsed contains a dictionary named data
. Within that dictionary is an array of current_condition
. Keep drilling down through the data structures to find the attributes you are looking for:
NSDictionary *data = [parsedJSON objectForKey:@"data"];
NSArray *currentConditions = [data objectForKey:@"current_condition"];
NSDictionary *condition = [currentConditions objectAtIndex:0];
NSString *tempC = [condition objectForKey:@"temp_C"];
这篇关于使用NSJSONSerialization来解析JSON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!