在RestKit中展平请求映射层次结构

时间:2015-03-26 15:13:37

标签: ios objective-c restkit restkit-0.20

使用RestKit,我正在尝试创建一个将payment对象转换为JSON的请求映射。此对象存储子付款,其中只有一个是有效的。此有效付款由属性selectedPayment表示。我认为这种方法的典型方法是使用关系映射,但我不希望selectedPayment显示为嵌套键。我当前方法的结果示例如下:

{
  "requestUserId" : "6",
  "payment" : {
    "selectedPayment" : {
      "amount" : "5",
      "id" : 70,
      "type" : "SOME_TYPE"
    }
  }
}

我想要的输出如下:

{
  "requestUserId" : "6",
  "payment" : {
    "amount" : "5",
    "id" : 70,
    "type" : "SOME_TYPE"
  }
}

我为关系映射的目标密钥路径尝试了很多选项:@root@parent""nil。所有这些都导致崩溃(""除外,它将所选付款嵌入空键下。)

我可以修改用于selectedPayment明确使用@root@parent的请求映射的属性映射,但这不是理想的,因为它会对其他区域产生负面影响使用映射。

这似乎是典型的行为,将“深层”对象表示转换为“浅层”JSON表示,当然有一种直接的方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:1)

不使用关系映射,而是在单个映射中使用关键路径,导航到属性,然后提取您要搜索的关键字。

答案 1 :(得分:0)

不要使用关系映射,而是使用单个映射中的键路径导航到属性并提取所需的键。因此,您可以使用selectedPayment.amountselectedPayment.idselectedPayment.type作为映射中的源键路径,amountidtype目的地钥匙。