как разобрать json responseString из веб-сервиса - PullRequest
0 голосов
/ 14 июня 2011

Я подключаюсь к веб-сервисам, используя json.

Я подключился через nsurl. Я получил строку ответа json ... мне нужно ее проанализировать.

Когда я пытаюсь разобрать его, я получаю следующую ошибку:

dyld: символ не найден: _CFXMLNodeGetInfoPtr

вот соответствующий исходный код:

  // Using NSURLConnection

- (void)viewDidLoad

{

    [super viewDidLoad];

    dataWebService = [[NSMutableData data] retain];

    NSMutableURLRequest *request = [[NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://www.googleapis.com/customsearch/v1?key=AIzaSyDzl0Ozijg2C47iYfKgBWWkAbZE_wCJ-2U&cx=017576662512468239146:omuauf_lfve&q=lectures&callback=handleResponse"]]retain];    

    NSURLConnection *myConnection = [NSURLConnection connectionWithRequest:request delegate:self];

    [myConnection start];    

    [super viewDidLoad];

}



- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 

{

    [dataWebService setLength:0];

}


- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

{

    [dataWebService appendData:data];

}


    - (void)connectionDidFinishLoading:(NSURLConnection *)connection 

    {

        NSString *responseString = [[NSString alloc] initWithData:dataWebService encoding:NSUTF8StringEncoding];

        NSLog(@"Response: %@",responseString);

        [responseString release];

        [dataWebService release];

    }

    - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error

    {

        NSLog(@"Error during connection: %@", [error description]);

    }


    // Parse JSON    

     - (void)requestCompleted:(ASIHTTPRequest *)request
    {

        NSString *responseString = [request responseString];

        NSDictionary *dictionary = [responseString JSONValue];

        NSDictionary *dictionaryReturn = (NSDictionary*) [dictionary objectForKey:@"request"];   

        NSString *total = (NSString*) [dictionaryReturn objectForKey:@"totalResults"];


        NSLog(@"totalResults: %@", total);    

        int count = [[dictionaryReturn objectForKey:@"count"] intValue];

        NSLog(@"count: %d", count);        
    }

1 Ответ

0 голосов
/ 14 июня 2011

Неправильная строка ответа JSON, поэтому вы получаете сообщение об ошибке.

Используйте следующую ссылку, чтобы проверить, верна ли строка JSON, отправленная как ответ от веб-служб,

JSONLint

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...