2011-08-17 79 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]; 

     } 
}