JSON parsing returns null to iOS (json string looks correct)

I am trying to get a JSON to iOS app, but keep getting NULL values.. - (id)initWithDictionary:(NSDictionary *)dictionary { self.name = [dictionary valueForKey:@"name"]; self.amount = [NSString stringWithFormat:@"%@", [dictionary valueForKey:@"amount"]]; self.goalId = [dictionary valueForKey:@"id"]; self.createdAt = [dictionary valueForKey:@"created_at"]; self.updatedAt = [dictionary valueForKey:@"updated_at"]; return self; } + (NSArray *)findAllRemote { NSURL *url = [NSURL URLWithString:@"http://localhost:3000/goals.json"]; NSError *error = nil; NSString *jsonString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error]; NSLog(@"my string = %@", jsonString); NSMutableArray *goals = [NSMutableArray array]; if (jsonString) { SBJSON *json = [[SBJSON alloc] init]; NSArray *results = [json objectWithString:jsonString error:&error]; [json release]; for (NSDictionary *dictionary in results) { Goal *goal = [[Goal alloc] initWithDictionary:dictionary]; [goals addObject:goal]; [goal release]; } } return goals; } JSON string looks correct: my string = [{"goal":{"amount":"100.0","created_at":"2011-08-20T00:55:34Z","id":1,"name":"User","updated_at":"2011-08-20T00:55:34Z"}},{"goal":{"amount":"200.0","created_at":"2011-08-20T00:56:48Z","id":2,"name":"User2","updated_at":"2011-08-20T00:56:48Z"}},{"goal":{"amount":"19999.0","created_at":"2011-08-20T19:15:10Z","id":3,"name":"This is MY GOAL","updated_at":"2011-08-20T19:15:10Z"}},{"goal":{"amount":"0.0","created_at":"2011-08-20T20:46:44Z","id":4,"name":"goal","updated_at":"2011-08-20T20:46:44Z"}}] I am missing something basic I guess.. **UPDATE**: Here is a line that returns NULL (from another class): - (IBAction)refresh { [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; self.goals = [Goal findAllRemote]; [self.tableView reloadData]; [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; } - (void)viewDidLoad { [super viewDidLoad]; self.title = @"Goals"; self.navigationItem.leftBarButtonItem = self.editButtonItem; UIBarButtonItem *refreshButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refresh)]; self.navigationItem.rightBarButtonItem = refreshButton; [refreshButton release]; [self refresh]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"GoalCellId"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease]; } Goal *goal = [goals objectAtIndex:indexPath.row]; cell.textLabel.text = goal.name; cell.detailTextLabel.text = goal.amount; return cell; } **goal.name** and **goal.amount** are Null..

以上就是JSON parsing returns null to iOS (json string looks correct)的详细内容,更多请关注web前端其它相关文章!

赞(0) 打赏
未经允许不得转载:web前端首页 » JSON 答疑

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏