Какао JSON - Проверить, массив или словарь - PullRequest
3 голосов
/ 13 октября 2009

Я использую инфраструктуру Cocoa JSON (http://code.google.com/p/json-framework/) для связи с API.

Проблема в том, что API возвращает словарь в случае ошибки, но возвращает массив результатов, если он работает.

Есть ли хороший способ определить, является ли JSONValue массивом или словарем?

Спасибо.

Ответы [ 3 ]

6 голосов
/ 14 октября 2009

Вы можете использовать isKindOfClass:, чтобы проверить, является ли объект экземпляром NSDictionary или любого его подкласса.

В большинстве случаев вам лучше будет пройти проверку respondsToSelector:, но это один из случаев, когда вам действительно лучше проверить его членство в классе.

Конечно, вы можете проверить, является ли это массив, а не словарь; до тех пор, пока используемый вами API возвращает только массив или словарь, эффект тот же.

Для истинной надежности протестируйте оба членство в массиве и словаре и сгенерируйте исключение или представьте ошибку, если объект не является ни.

0 голосов
/ 15 апреля 2015

Попробуйте это:

if ([YourData isKindOfClass:[NSArray class]])
{
    NSLog(@"Array format found");
}
else
{
    NSLog(@"Dictionary format found");
}
0 голосов
/ 13 октября 2009

Может быть, попытаться проверить свойство длины.

if (jsonObj.length) {
   //doSomeWork
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...