1

ドキュメントを読むのに何時間も費やし、さまざまなサンプル プロジェクトなどを試しましたが、問題を解決できません。Restkit は数日前に多くの API を変更したため、提供される情報の多くとチュートリアルは役に立ちません。機能するものは、私の問題を解決するのに役立ちません。

一般に、オブジェクト マッピングを行うときに /person または /person.user または /:user または /person/user を使用するタイミングがわかりません。特定の JSON エントリにアクセスする方法については何も見つかりませんでした。誰かが私にこれを説明できるかもしれません。

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