使用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表示,当然有一种直接的方法可以做到这一点吗?
答案 0 :(得分:1)
不使用关系映射,而是在单个映射中使用关键路径,导航到属性,然后提取您要搜索的关键字。
答案 1 :(得分:0)
不要使用关系映射,而是使用单个映射中的键路径导航到属性并提取所需的键。因此,您可以使用selectedPayment.amount
,selectedPayment.id
和selectedPayment.type
作为映射中的源键路径,amount
,id
和type
目的地钥匙。