Re: [问题] Json解析时遇到的问题

楼主: benjenq (Ben(憋))   2014-04-18 00:31:20
小弟经验值太少,所以回文骗一下PO文数...
首先,这个网址很邪门,问题有三个:
1.拿到的json似乎是有问题的,
不论用哪一种JSON parse都会出错...
2.空白的问题(假设取得的JSON是没问题的),
我也遇到了
3.要选对解码,不然取得的内容也是空白的。
以下内容是解决上述 2跟3 这两个问题...
我猜可能是取得的JSON太大(约4.4MB),
你的Code必须改写,使用异步的方式,
把JSON的内容逐一 append 到 NSMutableData 变量,
append完成再进行解析,
如下
// .h 内容,宣告变量 NSMutableData
NSMutableData *urlData;
// .m 内容
// 启用url
NSURL *url = [NSURL URLWithString:@"http://odata.tn.edu.tw/tnsport.json"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSURLConnection *connectionData = [[NSURLConnection alloc]initWithRequest:request delegate:self];
[connectionData start];
//底下是delegate
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
urlData = [[NSMutableData alloc] init];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[urlData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSError *jsonParsingError = nil;
// NSString *str = [[NSString alloc] initWithData:urlData
encoding:NSUnicodeStringEncoding];
// 查看JSON内容 NSLog(@"str=%@",str);
id object = [NSJSONSerialization JSONObjectWithData:urlData
options:0
error:&jsonParsingError];
if (jsonParsingError) {
NSLog(@"JSON ERROR: %@", [jsonParsingError localizedDescription]);
} else {
NSLog(@"OBJECT: %@", [object class]);
}
}
//
作者: donkeychen (Bad_To_The_Bone)   2014-04-18 14:19:00
我的浏览器一贴就网页无回应了^^;
作者: whitefur (白毛)   2014-04-18 15:26:00
因为4.4m的文字档太大了

Links booklink

Contact Us: admin [ a t ] ucptt.com