我花了很多时间阅读文档并尝试了各种示例项目等,但我无法解决我的问题。由于 Restkit 几天前更改了许多 API,因此提供的大部分信息和教程都没有用。有效的东西对我的问题没有帮助。
一般来说,我不明白在进行对象映射时何时使用 /person 或 /person.user 或 /:user 或 /person/user 。我还没有找到任何关于如何访问某些 JSON 条目的信息。Mybe有人可以向我解释这一点。
我想从我的 JSON 响应中创建对象。问题是使用嵌套在对象中的对象或数组。
这是导致问题的 JSON:
{
"result":
{
"persons":
[
{
"age": 20,
"name": "alice",
"user":
{
"id": 208727870
}
},
{
"age": 25,
"name": "bob",
"user":
{
"id": 308427890
}
}
]
}
}
对于这个示例,我需要进行对象映射 -> 但如何?
此映射有效:
{
"result":
[
{
"age": 20,
"name": "alice",
"user":
{
"id": 208727870
}
},
{
"age": 25,
"name": "bob",
"user":
{
"id": 308427890
}
}
]
}
RKObjectMapping* userMapping = [RKObjectMapping mappingForClass:[RKTUser class]];
[userMapping mapKeyPath:@"id" toAttribute:@"userID"];
RKObjectMapping* statusMapping = [RKObjectMapping mappingForClass:[RKTStatus class]];
[statusMapping mapKeyPath:@"age" toAttribute:@"age"]
[statusMapping mapKeyPath:@"name" toAttribute:@"name"]
[statusMapping mapRelationship:@"user" withMapping:userMapping];
statusMapping.rootKeyPath = @"result";
// user seems only to be a placeholder .. it does not matter, which string i write instead "user"
[objectManager.mappingProvider setObjectMapping:statusMapping forResourcePathPattern:@"/:user"];
我最终想做的事情:
{
"result":
{
"id_str": "208727870",
"result_value_str": "123456",
"persons":
[
{
"age": 20,
"name": "alice",
"user":
{
"id": 208727870
}
},
{
"age": 25,
"name": "bob",
"user":
{
"id": 308427890
}
}
],
"friends":
[
{
"age": 18,
"name": "norton",
"user":
{
"id": 208457120
}
},
{
"age": 41,
"name": "edward",
"user":
{
"id": 378829810
}
}
]
}
}
有人给我建议吗?(教程、链接、提示……)
最好的问候,史蒂夫