Разбор SBJSON + Синтаксис - PullRequest
       16

Разбор SBJSON + Синтаксис

0 голосов
/ 25 ноября 2010

Я бы соврал, чтобы разобрать файл JSON с SBJSON, но у меня есть небольшая проблема с пониманием? Вот моя структура JSON:

  • ID
  • текст
  • дата

Так, например:

[{ "ID": "1", "Текст": "блабла", "дата": "1235432241"}, { "идентификатор": "2", "Текст": "blabla2", "дата" : "1235432241"}]

И вот код, который я нашел для анализа файла JSON с SBJSON:


- (void)downloadJSONFile:(NSData *)data 
{   
    SBJSON *jsonParser = [[[SBJSON alloc] init] autorelease];
    NSString *jsonString = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];

    id response = [jsonParser objectWithString:jsonString error:NULL];

    NSDictionary *feed = (NSDictionary *)response;
    NSArray *nodes = (NSArray *)[feed valueForKey:@"keyValue"]; // here's I don't know what to put

    for (int i = 0; i nodes.count; i++) {

        NSDictionary *node = (NSDictionary *)[nodes objectAtIndex:i];
        NSLog(@"id = %@",[node objectForKey:@"id"]);
    }
}

Я не знаю, что написать в valueforKey моего массива узлов ... Кто-то может мне объяснить? Спасибо!

Ответы [ 2 ]

1 голос
/ 25 ноября 2010

Ваши ключи: идентификатор, текст и дата.Поэтому, если вы хотите проанализировать объекты с идентификатором ключа, то в строке, которую вы выделили, это будет:

valueForKey: @ "id"

0 голосов
/ 25 ноября 2010

По виду поставляемого вами образца json вы должны получить NSArray, содержащий два NSDictionary.Таким образом, код должен быть

NSArray *nodes = (NSArray *)response;

Не будучи знакомым с SBJSON, возможно, что ответ на самом деле будет NSDictionary.В этом случае вы можете просто напечатать словарь, используя NSLog(@"%@", feed);. Вы должны получить распечатку, которая выглядит примерно так:

{
  nameOfKey =  (
              {
               "id" = 1;
               "text" = "blablabla"
...

Где nameOfKey будет ключевым значением, которое вы ищете.

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