2011-05-16 90 views
1

我是iPhone应用开发新手。 我需要一些帮助...我想解析一些数据(银行名称)并将它们显示为UITableView。我使用这个代码来解析银行名称这是JSON格式:iPhone JSON解析

 NSArray *atmDAta = [responseString JSONValue]; 
for (NSDictionary *dict in atmDAta) { 
    NSLog(@"%@", [dict objectForKey:@"Name"]); 
    [listOfItems addObject:[dict objectForKey:@"Name"]]; 
} 

但是当我尝试向他们展示在表是这样的:

cell.textLabel.text = [listOfItems objectAtIndex:indexPath.row]; 
return cell; 

这会告诉我没什么表但NSlog正在工作,并显示我在xcode日志中的银行名称。请帮忙。

+0

莫非你一些你的代码? ListOfItem是否保持正确?当你完成分析时,它是否有任何项目?或者是你插入一个空字符串的名字? – rckoenes 2011-05-16 10:28:32

+0

'code' NSMutableArray * listOfItems; – Rocky 2011-05-16 10:33:04

+0

Yaeh我保留正确 – Rocky 2011-05-16 10:40:52

回答

0

呼叫[yourtable reloadData];当你完成JSON解析

+0

是的,我也这样做[atmList reloadData];但仍然没有任何输出 – Rocky 2011-05-16 10:29:48

+0

你可以发布一些更多的代码或粘贴从你得到的JSON链接 – 2011-05-16 10:31:45

+0

这是[链接](http://www.fourspan.com/atminfo/getatminfo.php?lat=47.822828 &long = -28.44989)从我解析数据的位置 – Rocky 2011-05-16 10:36:05

0

请参考此代码为JSON解析

-(void)getLatestScore 
{ 
    SBJsonParser *parser = [[SBJsonParser alloc] init];  

    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://json-cricket.appspot.com/score.json"]]; 

    // Perform request and get JSON back as a NSData object 
    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 

    // Get JSON as a NSString from NSData response 
    NSString *str_Json_String = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding]; 

    // parse the JSON response into an object 

    NSDictionary *dicCricketScore = [parser objectWithString:str_Json_String error:nil]; 

    lblDate.text = [dicCricketScore objectForKey:@"date"]; 
    lblMatch.text = [dicCricketScore objectForKey:@"match"]; 
    lblBattingTeam.text = [dicCricketScore objectForKey:@"batting_team"]; 
    lblScore.text = [dicCricketScore objectForKey:@"score"]; 
    lblSummary.text = [dicCricketScore objectForKey:@"summary"]; 
} 

从这个代码,你会从JSON解析得到最新板球得分....

+0

你好Mehul Mistry ......很多thanX这个,但我已经解析数据到标签....现在我只需要解析数据并将其显示到UITableView中 – Rocky 2011-05-16 10:53:13

+0

你在哪里存储数据...... NSMutableArray或其他... – 2011-05-16 11:01:50

0

@ Rocky试试这个试试

声明在.h NSArray * listOfItems;

@property (nonatomic, copy)NSArray *listOfItems; 

,并使用这.M

NSMutableArray *tempArray = [[NSmutableArray alloc]initWithCapacity:[atmDAta count]]; 
for (NSDictionary *dict in atmDAta) { 
    NSLog(@"%@", [dict objectForKey:@"Name"]); 
    if (![dict valueForKeyIsNull:@"Name"]) { 
     [tempArray addObject:[dict objectForKey:@"Name"]];   
    } 
} 
self.listOfItems = [NSArray arrayWithArray:tempArray]; 
[tempArray release]; 
if([self.listOfItems count] > 0) 
[yourTable reloadData]; 

当我使用的是分类

@implementation NSDictionary (KeyExists) 

- (BOOL) keyExists:(NSString *) key { 
    return [self valueForKey:key] != nil; 
} 

- (BOOL) valueForKeyIsNull:(NSString *) key { 
    return ![self keyExists:key] || ((NSNull *)[self valueForKey:key] == [NSNull null]); 
} 
@end 

干杯!

0

加入数组,你可以做后[LISTOFITEMS保留]