2013-09-16 6 views
1

Я разрабатываю приложение iOS 5.0 и выше, используя последний SDK.Deserialize JSON Dictionary в пользовательский класс

Я получаю NSDictionary используя этот код:

id jsonObject = [NSJSONSerialization 
JSONObjectWithData:jsonData options:NSJSONReadingAllowFragments error:&error]; 

Этот словарь имеет свойства класса в качестве ключей, и каждое значение свойства в качестве значений.

Я пытаюсь разработать универсальный метод:

+ (id)FromJSON:(NSDictionary*)jsonDic toClass:(NSString*)className; 

Этот метод экземпляр по вар с использованием className параметра (?, Кстати, я могу создать экземпляр объекта, используя NSString с именем класса) ,

Но моя проблема заключается в том, могу ли я знать тип для каждого значения jsonDic. Я могу получить каждое имя свойства и попытаться пригласить его тип (NSString, NSNumber и т. Д.).

Любые советы о том, как это сделать?

+0

Ваш использованный RestKit? –

ответ

0

я решил мою проблему таким образом:

+ (id)FromJSON:(NSDictionary*)jsonDic toClass:(NSString*)className 
{ 
    Class ObjectClass = NSClassFromString(className); 

    if (ObjectClass == nil) 
     return nil; 

    NSObject* loadedObject = [[ObjectClass alloc] init]; 

    [loadedObject setValuesForKeysWithDictionary:jsonDic]; 

    return loadedObject; 
} 

Любой комментарий?

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