次の形式で投稿リクエストを受け入れる JSON エンド パスがあります。
{'values': [
{
"date":<measurement date as Unix time stamp>
"value":<weight>
}
{
"date":<measurement date as Unix time stamp>
"value":<weight>
}
...]}
「Values」はクラス「EntryCollection」で表され、各値はクラス「Entry」で表されます。オブジェクトを 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];
データ構造の編集
私のデータ構造は単純です(私はそう思います):
EntryCollection
- NSArray *entries (a collection of objects of type Entry)
Entry
- NSDate *date
- NSNumber *weight;
エントリで満たされた EntryCollection を POST したいと思います。EntryCollection のマッピングは「エントリ -> 値」であり、Entry のマッピングは「日付 -> 日付、重み -> 値」です。