如何将此JSON数组映射到RestKit 2中的对象

时间:2013-12-18 14:22:29

标签: json restkit restkit-0.20

我有一个像这样的JSON结构:

[
    {
        "id" : "1",
        "name" : "Group 1"
    },
    {
        "id" : "2",
        "name" : "Group 2"
    },
    {
        "id" : "3",
        "name" : "Group 3"
    }
]

请注意以[以[结尾]开头。 如何使用RestKit 2将类似JSON的JSON映射到Group对象的数组?

我尝试过经典:

RKObjectMapping* groupMapping = [RKObjectMapping mappingForClass:[Group class]];
[groupMapping addAttributeMappingsFromDictionary:@{
        @"id" : @"groupID",
        @"name" : @"name"
}];
return groupMapping;

然后我使用RKMappingTest验证映射,但我经常收到错误:

restkit.object_mapping:RKMappingOperation.m:440 Failed transformation of value at keyPath 'id' to representation of type 'NSString': Error Domain=org.restkit.RKValueTransformers.ErrorDomain Code=3002 "Failed transformation of value...

解析JSON后:

_parsedJSON = [RKTestFixture parsedObjectWithContentsOfFixture:@"groups.json"];

_parsedJSON是一个字典数组。

1 个答案:

答案 0 :(得分:1)

  

keyPath'id'的值转换失败

这是因为它无法将数组转换为字符串。

您使用的测试类型无法处理此JSON,因为它不是单个映射,它是多个映射,并且映射类不处理多重性。

当映射运行时,它会在数组上调用valueForKey:并返回一个数组。它希望调用字典并获取字符串(或数字)。

所以,基本上,只测试单个对象的映射。