2015-09-20 5 views
2

Я имею проблему в разборе JSON URL в моем приложении IOSJSON синтаксического анализа IOS

NSString *strUrl = [NSString stringWithFormat:@"http://www.google.com/finance/info?q=NSE:MARUTI"]; 

NSURL *url = [NSURL URLWithString:strUrl]; 

NSData *stockData = [NSData dataWithContentsOfURL:url]; 
NSError *error; 
NSMutableArray *arrStock = (NSMutableArray*)[NSJSONSerialization JSONObjectWithData:stockData options:kNilOptions error:&error]; 

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

+0

Рассмотрите принятые ответы, которые являются полезными. Чтобы принять ответ, нажмите на полый флажок рядом с ответом, который лучше всего подходит, и это увеличит вашу репутацию и предоставит больше возможностей. См. [Репутация faq] (http://stackoverflow.com/faq#reputation) См. [ эту страницу] (http://meta.stackoverflow.com/questions/5234/how-does-accepting-an-answer-work) для более подробной информации. – zaph

+0

Примечание: выдача 'NSArray' в' NSMutableArray' не делает его изменчивым массивом. Вместо этого используйте 'mutable copy':' NSMutableArray * arrStock = [[NSJSONSerialization JSONObjectWithData: опции StockData: ошибка kNilOptions: & error] mutableCopy]; 'Или используйте такой параметр, как' NSJSONReadingMutableContainers' или 'NSJSONReadingMutableLeaves', если они отвечают потребностям. – zaph

ответ

1

Возвращенная строка недействительна JSON, потому что она начинается с «//».

Две вещи могли бы помочь с отладки это:

  1. Когда nil возвращается исследовать (NSLog()) возвращение ошибки.
    NSLog(@"error: %@", error.localizedDescription); возвращается:

    error: The data couldn’t be read because it isn’t in the correct format.

  2. NSLog возвращаемые данные.
    NSLog(@"data : %@", stockData);

    data : <0a2f2f20 5b0a7b0a ...
    Notice the leading "0a2f2f20".

  3. или NSLog(@"data as string: %@", [[NSString alloc] initWithData:stockData encoding:NSUTF8StringEncoding]);

    data as string:
    // [
    {
    "id": "7152373"
    ,"t" : "MARUTI"

Обратите внимание, ведущий "//", который предваряется символом новой строки, которая не является очевидным, поэтому я предпочитаю шестнадцатеричный представление.

+0

Большое спасибо Zaph .. –

+0

Amazing Zaph .. Ты мне очень помог узнать, как я новичок в iOS .. Приветствия приятеля –

Смежные вопросы