У меня есть конечный путь JSON, который принимает почтовые запросы в следующем формате.POST с комплектом отдыха
{'values': [
{
"date":<measurement date as Unix time stamp>
"value":<weight>
}
{
"date":<measurement date as Unix time stamp>
"value":<weight>
}
...]}
«Значение» представлено класс «EntryCollection», а каждое значение представлено класс «вход». Я озадачен тем, что нашел правильный способ сопоставить мои объекты с представлением JSON. Прямо сейчас у меня есть следующий код, который вызывает ошибку: «Операция сопоставления не смогла найти какие-либо вложенные представления объектов при найденных путях ключей».
RKObjectMapping *entryMapping = [RKObjectMapping requestMapping];
RKObjectMapping *valuesMapping = [RKObjectMapping mappingForClass:[EntriesCollection class]];
[valuesMapping addAttributeMappingsFromDictionary:[EntryCollection attributesMapping]];
[singleEntryMapping addAttributeMappingsFromDictionary:[SingleEntry attributesMapping]];
[singleEntryMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"entries" toKeyPath:@"entries" withMapping:valuesMapping]];
RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:entryMapping
objectClass:mappedClass
rootKeyPath:nil];
[self.objectManager addRequestDescriptor:requestDescriptor];
NSString *path = [self pathForPOST];
[self.objectManager postObject:weights path:path parameters:nil success:nil failure:nil];
EDIT для структуры данных
Моя структура данных проста (я предполагаю):
EntryCollection
- NSArray *entries (a collection of objects of type Entry)
Entry
- NSDate *date
- NSNumber *weight;
Я хотел бы опубликовать EntryCollection наполненную записей. Отображение EntryCollection - это «записи -> значения», один из которых - «дата -> дата, вес -> значение».
Ваша структура класса действительно не ясна, поскольку у вас много разных классов в ваших отображениях, и большинство отображений кажутся частичными. Вам может быть проще создавать сопоставления, как если бы вы разбирали JSON, а затем принимали обратный. В противном случае вам нужно будет отобразить полную структуру классов. – Wain
Я обновил свой вопрос с помощью структуры данных. – ff10