2011-12-26 3 views
1

Может кто-нибудь дать мне совет по чтению JSON? У меня есть RSS-канал в JSON, но я не уверен, как его расшифровать, поэтому я могу использовать его в коде. Раньше я разбирал JSON, но у меня был бы API от веб-ребята, который сказал бы, что «альбомы с ключевыми словами - это список объектов». Итак, я бы разобрал JSON и запустил «альбомы» в NSArray. Я использую SBJSON для iOS, если это имеет значение.Как читать вручную JSON

Я пытаюсь получить данные RSS из iTunes, но я не вижу документа API в любом месте и не знаю, как правильно анализировать данные.

Вот ссылка: iTunes JSON

ответ

7

Я просто хочу, чтобы вы немного в него, вам придется DIGG ковшик, чтобы получить больше данных. Это, как вы бы разобрать следующий JSON:

{ 
    "feed": { 
    "author": { 
     "name": { 
     "label": "iTunes Store" 
     }, 
     "uri": { 
     "label": "http://www.apple.com/itunes/" 
     } 
    }, 
    "entry": [ 
     { 
     "im:name": { 
      "label": "Sexy and I Know It" 
     }, 
     "im:image": [ 
      { 
      "label": "http://a5.mzstatic.com/us/r1000/037/Music/3c/0c/ba/mzi.levtcsmk.55x55-70.jpg", 
      "attributes": { 
       "height": "55" 
      } 
      }, 
      { 
      "label": "http://a2.mzstatic.com/us/r1000/037/Music/3c/0c/ba/mzi.levtcsmk.60x60-50.jpg", 
      "attributes": { 
       "height": "60" 
      } 
      }, 
      { 
      "label": "http://a3.mzstatic.com/us/r1000/037/Music/3c/0c/ba/mzi.levtcsmk.170x170-75.jpg", 
      "attributes": { 
       "height": "170" 
      } 
      } 
     ], 

Если предположить, что приведенные выше данные хранятся в NSString называется json.

чтения JSON данных в NSDictionary:

NSDictionary *data = [json JSONValue]; 

NSDictionary Получить представление feed объекта

NSDictionary *feed = (NSDictionary *) [data objectForKey:@"feed"]; 

NSDictionary Получить представление из author объект

NSDictionary *author = (NSDictionary *) [feed objectForKey:@"author"]; 

Get NSDictionary представление name объекта

NSDictionary *name = (NSDictionary *) [author objectForKey:@"name"]; 

Получить NSString представление о label объекта

NSString *label = (NSString *) [name objectForKey:@"label"]; 

... и так далее

Теперь позволяет получить набор ввода объектов

Получить NSArrayentry объект

NSArray *entry = (NSArray *) [data objectForKey:@"entry"]; 

Позволяет получить NSArray объектов изображения из коллекции въездной

NSArray *images = [[entry objectAtIndex[0]] objectForKey:@"im:image"]; 

Надежда, что помогает вам понять поток синтаксического анализа.

+0

Это идеальное решение. Теперь я полностью понимаю! – spentak

+0

Рад, что я мог бы помочь :-) – Cyprian