2011-08-17 80 views
0

從此鏈接獲取JSON數據。解析json數據給出錯誤

http://www.krsconnect.no/community/api.html?method=event&appid=620&eventid=15946&affecteddate=1310515200000

我想所有需要elemnts狀的圖象介質標題等存儲在DetailaDetail對象,但它給錯誤。

這裏是我的代碼:

SBJsonParser *parser = [[SBJsonParser alloc] init]; 
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.krsconnect.no/community/api.html?method=event&appid=620&eventid=15946&affecteddate=1310515200000"]]; 


NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding]; 
NSDictionary *object = [parser objectWithString:json_string error:nil]; 
NSArray *results = [parser objectWithString:json_string error:nil]; 


for (int i=0; i<[results count]; i++) { 

    NSDictionary*dictOne=[results objectAtIndex:i]; 
    Detail *aDetail = [[Detail alloc] initWithDictionary:[results objectAtIndex:i]];  

    [appDelegate.descriptionArray addObject:aDetail]; 

    } 
+1

請發表您的錯誤 –

+2

我可以count't三種方法你在哪裏無視要求他們返回的任何錯誤。如果事情開始失敗,你只是忽略錯誤,那麼.... –

回答

1

這不是你如何使用SBJSon。試試這個:

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.krsconnect.no/community/api.html?method=event&appid=620&eventid=15946&affecteddate=1310515200000"]]; 


    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
    NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding]; 
    NSDictionary *object = [json_string JSONValue]; 
0
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding]; 

NSError *error; 

SBJSON *json = [[SBJSON new] autorelease]; 

id obj = [json objectWithString:json_string error:&error]; 

if ([obj isKindOfClass:[NSDictionary class]]) { 

      [appDelegate.descriptionArray addObject:obj]; 

}else if ([obj isKindOfClass:[NSArray class]]) { 

     for (NSDictionary *aDetail in obj) { 

       [appDelegate.descriptionArray addObject:aDetail]; 

     } 
}