用于POST JSON列表的RestKit映射

时间:2016-07-14 14:57:09

标签: restkit

是否可以使用RestKit将请求发送到需要JSON字典列表的服务器? :

[
  { "key1":"value1",
    "key2":"value2"
  }
]

wiki:https://github.com/RestKit/RestKit/wiki/Object-Mapping#mapping-without-kvc描述了如何在响应上完成 - 从JSON到对象的映射 - 但不是相反 - 对象到JSON。为了使我认为的问题复杂化,URL请求的格式为http://www.example.com/some-name/upload - 不是很安静。

感谢您的帮助。

编辑:

谢谢Wain强迫我更深入地寻找解决方案 - 我不确定这是可能的。根据blakewatters记录的RestKit问题398,我解决了这样的问题:

RKObjectMapping *requestMapping = [RKObjectMapping requestMapping];
[requestMapping addAttributeMappingsFromDictionary:@{@"key1":@"value1", @"key2":@"value2"}];


RKRequestDescriptor *requestDescriptor =
[RKRequestDescriptor requestDescriptorWithMapping:requestMapping
                                      objectClass:[MyObjectClass class]
                                      rootKeyPath:nil
                                           method:RKRequestMethodPOST];

[objectManager addRequestDescriptor:requestDescriptor];


[[RKObjectManager sharedManager] postObject:@[self.myObject]
                                       path:@"/path/myobject/upload"
                                 parameters:nil
                                    success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
                                        NSLog(@"Success!");
                                    }
                                    failure:^(RKObjectRequestOperation *operation, NSError *error) {
                                        NSLog(@"Fail.");
                                    }];

我认为关键是将myObject放在一个数组中,然后将“rootKeyPath”和“parameters”设置为nil。

1 个答案:

答案 0 :(得分:0)

当然可以,它基本上是相同的(映射)然后使用inverseMapping和请求描述符而不是响应描述符。

无论如何,您需要一个响应描述符,因为您需要处理响应......