Ошибка анализа JSON API Echo Nest с помощью Objective-CIOS

Программируем под IOS
Ответить
Anonymous
 Ошибка анализа JSON API Echo Nest с помощью Objective-C

Сообщение Anonymous »

Я относительно новичок в Objective-C, но раньше я анализировал JSON с помощью JavaScript.

У меня есть этот код в моем viewDidLoad

Код: Выделить всё

NSURL *songsURL = [NSURL URLWithString:@"http://developer.echonest.com/api/v4/song/search?api_key=UVHRIOB9ISTKAAQ0R&format=json&results=1&combined=everybody%20dance%20now&bucket=id:7digital-UK&bucket=tracks&limit=true"];

NSData *jsonData = [NSData dataWithContentsOfURL:songsURL];

NSError *error = nil;

NSDictionary *dataDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];

NSDictionary *item = [dataDictionary objectForKey:@"response"];
NSLog(@"%@", item);
NSDictionary *songs = [item objectForKey:@"songs"];
NSLog(@"%@", songs);
NSDictionary *songTitle = [songs objectForKey:@"title"];
NSLog(@"Title= %@", songTitle);
и все работает, пока я не попытаюсь получить названия песен.

После того, как я получу песни, JSON выглядит следующим образом:

Код: Выделить всё

(
{
"artist_foreign_ids" =         (
{
catalog = "7digital-UK";
"foreign_id" = "7digital-UK:artist:2060042";
}
);
"artist_id" = ARKSHFP12D5CD74F5D;
"artist_name" = "Everybody Left";
id = SOWGJIF143A016B701;
title = "We Are Everybody Left";
tracks =         (
{
catalog = "7digital-UK";
"foreign_id" = "7digital-UK:track:32612792";
"foreign_release_id" = "7digital-UK:release:3062491";
id = TRZNPMZ1429AA0B7CE;
"preview_url" = "http://previews.7digital.com/clip/32612792";
"release_image" = "http://artwork-    cdn.7static.com/static/img/sleeveart/00/030/624/0003062491_200.jpg";
}
);
}
)
Я пробовал получить другие значения, например треки, используя NSDictionary *tracks = [songs objectForKey:@"tracks"];, но я все равно получаю сообщение об ошибке:

Код: Выделить всё

2014-08-29 01:54:07.612 khord[9530:60b] -[__NSCFArray objectForKey:]: unrecognized selector sent to     instance 0x987c450
2014-08-29 01:54:07.614 khord[9530:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFArray objectForKey:]: unrecognized selector sent to instance 0x987c450'
Может ли кто-нибудь предложить мне решение, как мне правильно анализировать этот JSON. У меня такое ощущение, что я неправильно понимаю типы данных.

Подробнее здесь: https://stackoverflow.com/questions/255 ... bjective-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»