【问题标题】:RestKit Object Mapping With Odd JSON带有奇数 JSON 的 RestKit 对象映射
【发布时间】:2012-10-14 02:44:17
【问题描述】:

您好,我正在尝试对以下 JSON 进行对象映射:

{    
"0":{       
       "chapter":"four",       
       "book":"Time Machine"    
    },    
"1":{       
      "chapter":"nine",       
      "book":"Science"    
    },    
"2":{       
      "chapter":"one",       
      "book":"Fiction Man"    
    },    
"3":{       
      "chapter":"25",       
      "book":"Cars"    
    } 
}

我正在使用的代码:

RKObjectMapping *bookMapping = [RKObjectMapping mappingForClass:[Book class]];

[[RKObjectManager sharedManager].mappingProvider addObjectMapping:bookMapping];

[retailerMapping mapKeyPathsToAttributes:@"chapter", @"chapter",@"book", @"book", nil];
[objectManager.mappingProvider setMapping:bookMapping forKeyPath:@"0"];

这适用于第一组,但显然会跳过 1、2 和 3。我怎样才能做到这一点?

任何帮助将不胜感激。

【问题讨论】:

    标签: objective-c ios json restkit


    【解决方案1】:

    如果您可以控制 JSON 的结构,请将其更改为数组而不是字典。否则你可以尝试 mapKeyPath 到 key.attribute,例如 0.chapter

    JSON 示例:

    {chapters:[    
       {       
       "chapter":"four",       
       "book":"Time Machine"    
       },    
      {       
      "chapter":"nine",       
      "book":"Science"    
      },    
      {       
      "chapter":"one",       
      "book":"Fiction Man"    
      },    
      {       
      "chapter":"25",       
      "book":"Cars"    
      }
     ] 
    }
    

    【讨论】:

    • 感谢您的回复。不幸的是,我无法控制 JSON。 0.chapter 不会导致同样的问题吗?也就是说,除非我明确指出,否则我将能够获得 0.chapter 但无法获得 20.chapter。正是这个数字索引让它变得困难。
    • 您可以查看 RKDynamicObjectMapping,但我认为您可能需要遍历键来创建这些对象,因为无法知道这种 JSON 结构的键是什么
    • 感谢 user1760726,我按照你的建议做了。也就是说,基本上是为多个关键路径创建映射。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 2013-08-15
    相关资源
    最近更新 更多