Какао JSON - Проверить, массив или словарь

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

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

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

Спасибо.

13.10.2009 14:18:59
3 ОТВЕТА

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

if (jsonObj.length) {
   //doSomeWork
}
0
22.11.2011 20:48:11

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

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

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

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

6
24.02.2014 20:48:28

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

if ([YourData isKindOfClass:[NSArray class]])
{
    NSLog(@"Array format found");
}
else
{
    NSLog(@"Dictionary format found");
}
0
15.04.2015 07:16:31