Сейчас я работаю с Restkit, чтобы сделать REST и RPC-запрос к удаленному серверу с устройства iPhone, это довольно классная библиотека.
Прямо сейчас я застрял с простой проблемой. Мой сервер ожидает некоторые данные как целое число. Это означает, что массив json выглядит следующим образом.
{'myInteger':1234}
Обратите внимание, что значение ключа my_integer_field не находится между ''. Это означает, что значение является числом, а не строкой.
Когда я делаю сопоставления и все прочее, я устанавливаю my_integer_field в качестве значения NSNumber в определении объекта. Но когда объект анализируется в Json, значение появляется между '', например:
{'myInteger':'1234'}
Поэтому я получаю сообщение об ошибке от сервера, поскольку предполагается, что «1234» представляет собой строку, а не число. Есть ли способ заставить разбор json не включать '' в поля NSNumber?
UPDATE
Вот код:
//myclass.h
@interface myClass : NSObject {
NSNumber *myInteger;
}
@property (nonatomic, retain) NSNumber *myInteger;
//appDelegate.m here is where i define the mappings for everything.
//myClass MAPPING
RKObjectMapping* myClassMapping = [RKObjectMapping mappingForClass:[myClass class]];
[myClassMapping mapAttributes:@"myInteger", nil];
[[RKObjectManager sharedManager].mappingProvider addObjectMapping:myClassMapping];
// myClass SERIALIZATION
RKObjectMapping* myClassSerializationMapping = [RKObjectMapping mappingForClass:[NSMutableDictionary class]];
[myClassSerializationMapping mapAttributes:@"myInteger", nil];
[[RKObjectManager sharedManager].mappingProvider setSerializationMapping:myClassSerializationMapping forClass:[myClass class]];
Я что-то упустил?