我正在尝试将Json数据存储到可变数组中。 JSON数据有" city"和循环内的主字典分支,其中主分支包含温度。当我在主体中循环时,所有先前的温度都被后者取代。 这是示例代码:
object = [[NSMutableArray alloc]init];
NSURL *url = [NSURL URLWithString:@"http://api.openweathermap.org/data/2.5/forecast/city?q=london,uk&APPID="];
//8a7bc4e5d8246122294adb174b708711
NSData *data = [NSData dataWithContentsOfURL:url];
Model *mod = [[Model alloc]init];
NSError *error;
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSDictionary *cityDict = [jsonDict objectForKey:@"city"];
NSString *cityName = [cityDict objectForKey:@"name"];
// NSLog(@"%@",cityName);
NSLog(@"%@",mod.city);
NSMutableArray *arrayOfTemperature = [jsonDict objectForKey:@"list"];
for (NSDictionary *obj in arrayOfTemperature) {
NSDictionary *main = [obj objectForKey:@"main"];
NSString *temp = [main objectForKey:@"temp"];
//NSLog(@"%@",temp);
mod.temp = temp;
[object addObject:mod];
}
答案 0 :(得分:1)
您反复使用相同的mod
实例。您需要在每次迭代时创建一个新的。
移动线:
Model *mod = [[Model alloc]init];
到for
循环内部:
NSMutableArray *arrayOfTemperature = [jsonDict objectForKey:@"list"];
for (NSDictionary *obj in arrayOfTemperature) {
Model *mod = [[Model alloc]init];
NSDictionary *main = [obj objectForKey:@"main"];
NSString *temp = [main objectForKey:@"temp"];
//NSLog(@"%@",temp);
mod.temp = temp;
[object addObject:mod];
}