Разбор JSON с NSJSONSerialization
Преобразуйте ответы API в пригодные для использования объекты Objective-C с помощью NSJSONSerialization и безопасно обращайтесь к полученным словарям и массивам.
«Разбор JSON с NSJSONSerialization» — бесплатный урок Objective-C iOS Development for Legacy & Enterprise Apps на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Objective-C iOS Development for Legacy & Enterprise Apps, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Objective-C iOS Development for Legacy & Enterprise Apps содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
JSON Meets Objective-C
Most APIs return JSON. Objective-C parses it with the Foundation class NSJSONSerialization, mapping JSON to native objects you already know.
The Type Mapping
JSON maps to Foundation types:
- object ->
NSDictionary - array ->
NSArray - string ->
NSString - number/bool ->
NSNumber - null ->
NSNull
Parsing Data to Objects
Call JSONObjectWithData:options:error: on the raw response data. It returns the top-level dictionary or array.
NSError *error = nil;
id json = [NSJSONSerialization JSONObjectWithData:data
options:0 error:&error];Always Check the Error
Malformed JSON returns nil and fills the error pointer. Check it before using the result.
if (!json) {
NSLog(@"Parse failed: %@", error.localizedDescription);
return;
}Reading Dictionary Values
Once parsed, access fields by key. Cast to the expected type for clarity.
NSDictionary *user = json;
NSString *name = user[@"name"];
NSNumber *age = user[@"age"];Iterating JSON Arrays
For a list response, loop the array and pull fields from each element.
NSArray *items = json[@"items"];
for (NSDictionary *item in items) {
NSLog(@"%@", item[@"title"]);
}Defensive Type Checks
APIs lie. Verify a value's class before using it to avoid crashes from unexpected shapes.
if ([json isKindOfClass:[NSDictionary class]]) {
// safe to treat as a dictionary
}Handling NSNull
JSON null becomes NSNull, not nil. Sending messages to it crashes, so check for it explicitly.
id value = user[@"nickname"];
if (value == [NSNull null]) { value = nil; }Encoding Back to JSON
To send JSON, go the other way with dataWithJSONObject:.
NSDictionary *body = @{@"name": @"Ada"};
NSData *out = [NSJSONSerialization dataWithJSONObject:body
options:0 error:nil];Mapping to Model Objects
Raw dictionaries are error-prone everywhere. A common pattern wraps parsing in a model's initializer, so the rest of the app uses typed objects instead of stringly-typed keys.
- (instancetype)initWithDictionary:(NSDictionary *)d {
self = [super init];
if (self) { _name = d[@"name"]; }
return self;
}Parse Off the Main Thread
Network responses arrive on a background thread. Parse there, then dispatch UI updates back to the main thread to keep the app responsive.
Quick Check
Test your JSON parsing knowledge.
Recap
You learned JSON parsing in Objective-C:
NSJSONSerializationmaps JSON to Foundation types- Always check the error and the result's class
- JSON null becomes
NSNull, not nil - Encode back with
dataWithJSONObject: - Map dictionaries into typed model objects
Defensive parsing keeps networking code crash-free.
Изучай Objective-C с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 12
- Уроки
- 48
Часто задаваемые вопросы
Урок «Разбор JSON с NSJSONSerialization» бесплатный?
Да — полный текст урока «Разбор JSON с NSJSONSerialization» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Objective-C iOS Development for Legacy & Enterprise Apps, подпишись на CoddyKit PRO. Курс Objective-C iOS Development for Legacy & Enterprise Apps содержит 4 уроков всего.
Чему я научусь в уроке «Разбор JSON с NSJSONSerialization»?
Преобразуйте ответы API в пригодные для использования объекты Objective-C с помощью NSJSONSerialization и безопасно обращайтесь к полученным словарям и массивам. Ты практикуешь Objective-C iOS Development for Legacy & Enterprise Apps с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Objective-C iOS Development for Legacy & Enterprise Apps?
Предыдущий опыт не требуется. Objective-C iOS Development for Legacy & Enterprise Apps на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Разбор JSON с NSJSONSerialization»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Objective-C iOS Development for Legacy & Enterprise Apps?
Да. Каждый урок Objective-C iOS Development for Legacy & Enterprise Apps включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- NSURLSession для вызовов API
- Grand Central Dispatch (GCD)
- NSOperationQueue для сложных задач
- Разбор JSON с NSJSONSerialization