получение медиа-ссылки из строки json - PullRequest
0 голосов
/ 19 февраля 2011

Как бы я получить путь к изображению + имя из этого JSON?

    /*
     {
     distance = 0;
     "effective_from" = "2011-02-19 12:27:20";
     "effective_thru" = "2011-02-19 13:27:20";
     fname = eric;
     latitude = "11.92179";
     "listing_id" = 60;
     lname = cartman;
     longitude = "-74.70189";
     lstatus = active;
     media = "{\"media\":
     [
     {\"id\":149,\"media_url\":\"mediauploads/149.jpg\"},
     {\"id\":150,\"media_url\":\"mediauploads/150.jpg\"},
     {\"id\":151,\"media_url\":\"mediauploads/151.jpg\"},
     {\"id\":152,\"media_url\":\"mediauploads/152.jpg\"}
     ]}";
     tags = "Separate multiple tags with commas";
     text = "Listing text";
     title = "Please provide a descriptive title";
     username = eric;
     "users_id" = 13;
     },
     */

Моя проблема в том, что NSDictionary * media = [userContent objectForKey: @ "media"];возвращает - [NSCFString objectForKey:]: нераспознанный селектор, отправленный экземпляру 0x66662a0, поэтому я не могу получить массив из него.

Обновление: так получается, что я получаю как строку с сервера.Как я могу разобрать его в словаре?

Любая помощь приветствуется.

Спасибо!

1 Ответ

0 голосов
/ 19 февраля 2011

TouchJSON предоставляет класс JSON Deserializer, который содержит метод для преобразования JSON в словарь.

Если вы возвращаете JSON в виде строки, сначала преобразуйте его в NSData. Например:

NSData *jsonData = [jsonString dataUsingEncoding:NSUTF32BigEndianStringEncoding];

Затем создайте CJSONDeserializer и передайте данные, чтобы вернуть словарь:

CJSONDeserializer *deserializer = [CJSONDeserializer deserializer];
error = nil;
NSDictionary *dict = [deserializer deserializeAsDictionary:jsonData error:&error];

После этого вы сможете извлечь необходимые данные из словаря.

...