2012-07-01 4 views
0

Я инициировать соединение URL и мой сценарий возвращает следующий JSON:Синтаксический JSON цель с

( 1, { "ID" = < -ID здесь->; хэш = < -Hash здесь->; }, ( ), ( ))

Все примеры, которые я видел, так по-видимому, имеют «идентификаторы» или идентификаторы перед соответствующими массивами/словарями. Несмотря на поиски, я не мог найти способ разобрать это. (т. е. мне нужно получить первое логическое значение, id, хеш, а затем и массивы (которые на данный момент пусты)).

Извините, если у меня что-то не хватает - я новичок в разборе JSON в Obj-C. Спасибо за помощь.

ответ

2

Функция, которую я использую, встроена в библиотеки Cocoa: класс NSJSONSerialization. Он предоставляет методы для разбора JSON в графе и кодирования графика в JSON. Правила аналогичны plists (т. Е. Базовые типы плюс массивы и словари).

Если у вас есть NSData (которые вы можете легко получить из строки), вы делаете так:

NSArray *yourJSONAsObjectGraph = [NSJSONSerialization JSONObjectWithData:yourNSData options:nil error:&err]; 

Затем с данными выше, objectAtIndex: 0 было бы в NSNumber, что вы можете позвонить boolValue on, objectAtIndex: 1 будет NSDictionary, который вы можете назвать objectForKey:@"id" (и @ "hash") и т. д.

+0

Спасибо, это полезно. Я попробую сейчас и дам вам знать. – Kgrover

+0

Единственное предостережение в том, что вам нужно знать (или определять), какой тип объекта будет на верхнем уровне. Обычно вы знаете, потому что вы говорите со своим API, но вы также можете обнаружить. Он всегда будет либо NSArray, либо NSDictionary (если нет ошибки). –

+0

Это сработало отлично. Спасибо вам за быстрый ответ. – Kgrover

0

См. How to use JSON in Objective-C. Если вы еще не слышали об этом, посмотрите на SBJSON.

+0

Я думал, что в iOS теперь есть собственный парсер JSON. Я ошибаюсь? – Kgrover

+0

Что вы подразумеваете под «родным»? SBJSON является родным. Это чистая цель-C. Это не сделано Apple. – DrummerB

+0

См. Ответ @ctrahey ... кажется, что мне не нужно использовать что-либо, что не встроено в библиотеки по умолчанию. – Kgrover

Смежные вопросы