我只是想问一下,是否有办法解析Reskit中的以下字段“mods”:
post_count: false,
sitename: "Mercury",
mods: false,
admin_email: "maystro@test.com",
此处 mods 有一个 bool 值,在下一个示例中它有一个对象作为值:
post_count: false,
sitename: "Mercury",
mods: {
0: false,
author_blocks: {
enabled: {
placebo: "placebo"
},
disabled: {
2: "jbckmn",
placebo: "placebo"
}
},
backups: null,
smof_init: "Wed, 14 May 2014 18:53:58 +0000",
custom_logo: "",
custom_logo_height: "1",
custom_login_logo: "",
custom_login_logo_height: "1",
custom_favicon: ""
}
在同一个 JSON 响应中,我们接收这种类型的数据,有时 mods 有一个 bool 值,有时有一个对象。有谁知道是否有办法使用 Restkit 进行动态映射来处理这种情况?
提前致谢
最佳答案
的确如此。您想要使用 RKDynamicMapping
,并从中返回您想要使用的实际映射;像这样的东西:
RKDynamicMapping *dynamicMapping = [RKDynamicMapping new];
[dynamicMapping setObjectMappingForRepresentationBlock:^RKObjectMapping *(id representation) {
if ([representation valueForKey:@"MyKey"] isKindOfClass:[NSNumber class]])
{
return aMappingWhenTheFieldIsANumber;
}
else
{
return aMappingWhenTheFieldIsNotANumber;
}
}];
以这种方式,当您手头有数据时,您可以选择要使用的映射。只需检查字段类型的数据,并返回适合字段类型的普通 RKObjectMapping
。
关于ios - Reskit 为同一个字段解析多种类型的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25431191/