1

我花了很多时间阅读文档并尝试了各种示例项目等,但我无法解决我的问题。由于 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
               }
            }
        ]
    }
}

有人给我建议吗?(教程、链接、提示……)

最好的问候,史蒂夫

4

0 回答 0