Как вручную прочитать JSON - PullRequest
       3

Как вручную прочитать JSON

1 голос
/ 26 декабря 2011

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

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

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

1 Ответ

7 голосов
/ 26 декабря 2011

Я просто собираюсь немного познакомить вас, вам нужно будет покопаться в Медведице, чтобы получить больше данных. Вот как бы вы проанализировали следующий 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"];

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

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

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

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

... и т. Д.

Теперь давайте получим коллекцию объектов ввода

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

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

Позволяет получить NSArray объектов Image из коллекции записей

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

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

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