RestKit RKObjectMapping.. 嵌套和一次性对象

RestKit RKObjectMapping.. Nested & throwaway objects

所以,我有一个 api 调用,它将以下面的格式输出一些原始 json...

有点乱,但我只对 json 的 Mapping 部分感兴趣。如果我可以访问原始数据,我会将 json 序列化到我想遍历的字典/数组中。但是客户端正在使用 restkit,这似乎不像我那么容易'我在想象....

此外,我应该如何处理图像部分?同样,如果使用序列化 json 执行此操作,我可以打开字典并将内部内容设置为具有 name description 等的对象......我也可以这样做吗?

{
  "rsp": {

       sn         : "SerialNumber",
       name       : "Service Name",
       from       : "2000-01-01T00:00:00.000+01:00",
       to         : "2000-01-02T00:00:00.000+01:00",
       mappings : {

           "mapping" : {

              "1" : {

                      from     :    2000-06-01T00:01:00.000+01:00
                      to       :    2000-06-01T01:02:00.000+01:00
                      content  : {

                         name        : "name"
                         description : "description"
                         images : {
                            image : "b47ab5a8.png"
                         }
                      }
               },
              "2" : {

                      from     :    2000-06-01T00:01:00.000+01:00
                      to       :    2000-06-01T01:02:00.000+01:00
                      content  : {

                         name        : "name"
                         description : "description"
                         images : {
                            image : "b47ab5a8.png"
                         }
                      }
               },

               // etc...

我的问题是

 // what goes here

 RKObjectMapping *itemMapping = [RKObjectMapping mappingForClass:[MYItem class]];

[itemMapping addAttributeMappingsFromDictionary:@{@"description":@"itemDescription",
                                 @"name":@"name"}];

以及如何将图像添加到 MYItem

对于图像,您的映射类似于:

[itemMapping addAttributeMappingsFromDictionary:@{@"description":@"itemDescription",
                               @"name":@"name",
                               @"images.image":@"image"}];

即关键路径有效 但是,并不是说它们只适用于字典。您不能以相同的方式任意索引数组。

关键路径也在响应描述符中,这就是您向下钻取到 mapping 的方式,即 rsp.mappings.mapping(同样,因为它是字典)。