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