0

私は2つのクラスを持っています

  • 属性 ID を持つ著者、論文 (論文関係)、...
  • id、mainAuthor (著者関係)、authors (著者関係) ... という属性を持つ論文

いくつかのJSONをそれにマップしたい

"authors": [
    {
        "id": 123,
        "papers": [
            {
                "id": 1,
                "main_author_id": 123,
                ...
            },
            ...
        ]
    },
    ...
]

問題は、JSON が次のように構造化されていないことです。

"authors": [
    {
        "id": 123,
        "papers": [
            {
                "id": 1,
                "main_author": {
                    "id": 123
                }
                ...
            },
            ...
        ]
    },
    ...
]

簡単にマッピングできるように (両方の JSON 例の *main_author* 部分に注意してください)。here で説明されているように、キーパスなしでこの値をマッピングしてみました:

[authorMapping addAttributeMappingToKeyOfRepresentationFromAttribute:@"main_author_id"];
[authorMapping addAttributeMappingsFromDictionary:@{@"(main_author_id)": @"id"}];

しかし、keyPath idが既に存在し、この keyPath に 2 番目のマッピングを追加できない可能性があるというエラーが表示されます。私はこのエラーを完全に理解していますが、 *main_author_id* からidにマップする方法がわかりません。データ ソースを変更することが最善の解決策かもしれませんが、残念ながらこれは不可能です。

どんな提案でも大歓迎です!ありがとう!

4

2 に答える 2

1

これは、まさに外部キー マッピングの目的です。提供された「ID」値を一時的に保存すると、RestKit が適切なオブジェクトを見つけて関係を完成させます。

于 2013-07-18T10:20:39.950 に答える