Использование библиотеки ObjC RestKit, как отобразить объект в JSON NSString * - PullRequest
2 голосов
/ 04 октября 2011

Я использую RestKit http://restkit.org для iOS.Я определил объект и сопоставление объектов и могу использовать его для отправки и получения данных с сервера.Однако для моих сопоставленных объектов я бы хотел, чтобы метод -description возвращал сопоставление JSON для регистрации в консоли.

Как сопоставить объект со строкой?

Ответы [ 2 ]

6 голосов
/ 13 января 2014

Сопоставление объектов теперь существенно изменилось с RestKit ObjectMapping 2.0 в более новых версиях Reskit, и ответ @ bradgonesurfing не будет работать в этих новых версиях.выполнить сериализацию объекта следующим образом:

RKObjectMapping *itemMapping = [RKObjectMaping mappingForClass:[Item class]];
/* Your object mapping definition for the Item class goes here */

RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:itemMapping.inverseMapping objectClass:[Item class] rootKeyPath:nil method:RKRequestMethodPOST];

NSDictionary *dict = [RKObjectParameterization parametersWithObject:item requestDescriptor:requestDescriptor error:nil];
NSData *jsonData = [RKMIMETypeSerialization dataFromObject:dict MIMEType:RKMIMETypeJSON error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
5 голосов
/ 04 октября 2011

Я разобрался с решением

- (NSString*)description
{
    RKObjectMappingProvider * provider = [RKObjectManager sharedManager].mappingProvider;
    RKObjectMapping* mapping = [provider objectMappingForClass:[self class]];
    RKObjectSerializer * serializer = [RKObjectSerializer serializerWithObject:self mapping:mapping];

    NSError * error;
    return (NSString *)[serializer serializedObjectForMIMEType:RKMIMETypeJSON error: &error];
}
...