iOS開發(fā)常用的第三方類庫
// SBJsonStreamParser, just the top-level objects. The stream
// parser adapter exists for this purpose.
adapter = [[SBJsonStreamParserAdapter alloc] init];
// Set ourselves as the delegate, so we receive the messages
// from the adapter.
adapter.delegate = self;
// Create a new stream parser..
parser = [[SBJsonStreamParser alloc] init];
// .. and set our adapter as its delegate.
parser.delegate = adapter;
// Normally it's an error if JSON is followed by anything but
// whitespace. Setting this means that the parser will be
// expecting the stream to contain multiple whitespace-separated
// JSON documents.
parser.supportMultipleDocuments = YES;
}
#pragma mark SBJsonStreamParserAdapterDelegate methods
- (void)parser:(SBJsonStreamParser *)parser foundArray:(NSArray *)array {
[NSExceptionraise:@unexpected format:@Should not get here];
}
- (void)parser:(SBJsonStreamParser *)parser foundObject:(NSDictionary *)dict {
NSLog(@SBJson parser foundObject);
// 處理返回的數(shù)據(jù)
}
// 使用ASIHTTPRequest請求測試
- (void) loadData {
__block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setRequestMethod:@POST];
[request setCompletionBlock:^{
// Use when fetching text data
//NSString *responseString = [request responseString];
// Use when fetching binary data
NSData *responseData = [request responseData];
NSLog(@Connection didReceiveData of length: %u, responseData.length);
// Parse the new chunk of data. The parser will append it to
// its internal buffer, then parse from where it left off in
// the last chunk.
SBJsonStreamParserStatus status = [parser parse:responseData];
if (status == SBJsonStreamParserError) {
NSLog(@Parser error: %@, parser.error);
評論