Я полагаю, что большинство анализаторов JSON представляют null
как [NSNull null]
.
Если jsonDict
указывает на этот единственный элемент в массиве, то должно работать следующее:
if ([jsonDict objectForKey:@"photo"] == [NSNull null]) {
// it's null
}
<Ч />
Редактирование на основе комментария: , поэтому jsonDict
, несмотря на свое имя, является массивом. В этом случае переименуйте jsonDict
в jsonArray
, чтобы избежать дальнейшей путаницы. Затем с учетом jsonArray
указывает на массив, аналогичный примеру, приведенному в вопросе:
NSArray *photos = [jsonArray valueForKey:@"photo"];
for (id photo in photos) {
if (photo == [NSNull null]) {
// photo is null
}
else {
// photo isn't null
}
}
<Ч />
Дальнейшее редактирование на основе измененного вопроса ОП:
NSArray *jsonArray = [string JSONValue];
NSArray *photos = [jsonArray valueForKey:@"photo"];
for (id photo in photos) {
if (photo == [NSNull null]) {
// photo is null
}
else {
// photo isn't null. It's an array
NSArray *innerPhotos = photo;
…
}
}