【发布时间】:2012-11-06 02:27:12
【问题描述】:
我要做的是在网络上读取一个 json 文件(我知道与这方面的连接正在工作),然后获取一些文件内容以显示在我的 tableView 上。
在另一个示例中我能够做到这一点,但我不确定现在的问题是什么。
JSON 文件:
{
"entry":
[
{"Current Date":"Tuesday June 22 2011","Time Period":"00:00 - 06:45,"},
{"Current Date":"Tuesday June 23 2011","Time Period":"00:00 - 07:22"}
]
}
从网络获取 JSON 文件的按钮:
- (IBAction)getJsonButton:(id)sender {
[array removeAllObjects];
NSURL *url = [NSURL URLWithString:@"https://LinkToWhereJSONfileIsLocated/"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
connection = [NSURLConnection connectionWithRequest:request delegate:self];
if(connection)
{
webData = [[NSMutableData alloc]init];
}
}
这就是我认为我遇到问题的地方(一定是我的逻辑或语法):
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSDictionary *allDataDictionary = [NSJSONSerialization JSONObjectWithData:webData options:0 error:nil];
NSArray *arrayOfEntry = [allDataDictionary objectForKey:@"entry"];
for (NSDictionary *diction in arrayOfEntry) {
NSString *currDate = [diction objectForKey:@"Current Date"];
[array addObject:currDate];
}
[[self myTableView]reloadData];
}
【问题讨论】:
-
我忘了提到程序成功构建但当我按下按钮时表格中没有显示任何数据,这是我的困境。谢谢。
-
"Xcode Read JSON from web" - Xcode 不读取 JSON,您应该不用
Xcode标记这个问题。无论是 iOS 还是 OS X 编程,你都不需要 Xcode,Xcode 标签应该只用于关于特定 IDE 本身的问题。 -
你应该做一些基本的诊断,让我们知道你发现了什么。例如,创建一个
NSString *requestAsString = [[NSString stringWithData:request encoding:NSUTF8Encoding];,然后对该字符串执行一个NSLog。另外,做一个allDataDictionary的NSLog。等等。您需要逐行检查此代码,并确定结果是什么,以便诊断您误入歧途的地方。 -
JSON 格式很好奇。在您上面的评论中,您的格式略有不同(只是字典数组)。显然代码会改变以适应这种情况。不过,您确实应该逐行检查您的代码,并找出哪里出了问题。代码没有明显的问题,但可能有很多问题。网址输入错误? JSON格式错误?键名中的错字?表格视图代码中的错误?这么多的可能性,我们不可能诊断出来。您必须逐行查看以找出问题所在。
-
这是一个 URL 问题的事实表明您没有实现 connection:didFailWithError: 方法 - 您应该这样做,它会告诉您您的 URL 错误。
标签: objective-c ios json