Разбор JSON в RestKit с динамическими данными

Я пытаюсь разобрать следующий JSON, но получаю следующую ошибку.

"Ошибка. Не удалось найти сопоставление объекта для keyPath: ''"

Насколько я понимаю, это потому, что я не предоставил SetMapping: forKeyPath: но я не могу установить это, потому что ключ изменится, как вы можете видеть в JSON, например. BBC ONE, BBC TWO и так далее. Мне не нужно сохранять имя службы, так как я планирую перекрестно ссылаться на SID с другим файлом json, который содержит эти данные, хранящиеся в основных данных, для предоставления этого. (если это возможно). Есть ли способ обойти эту ошибку?

Вот мой JSON (урезанная версия)

{
    "BBC ONE": [
        {
            "Name": "Programme 1",
            "Description": "A desc of a programme",
            "ONID": 1,
            "TSID": 2,
            "SID": 3,
            "CRID": "crid_address"
        },
        {
            "Name": "Programme 2",
            "Description": " Another desc",
            "ONID": 9,
            "TSID": 99,
            "SID": 999,
            "CRID": "crid_2"
        }
    ],
    "BBC TWO": [
        {
            "Name": "bbc_programme",
            "Description": "programme 2",
            "Event ID": 4,
            "ONID": 9,
            "TSID": 4,
            "SID": 4,
            "CRID": "crid"
        }
    ]
}

и больше.

Вот мой код:

RKManagedObjectMapping *epgMapping = [RKManagedObjectMapping mappingForClass:[Epg class] inManagedObjectStore:objectManager.objectStore];

        [epgMapping mapKeyPathsToAttributes:@"Name",@"name",
                                        @"Description", @"desc",
                                        @"Event ID", @"event_id",
                                        @"ONID", @"onid",
                                        @"TSID", @"tsid",
                                        @"SID",  @"sid",
                                        @"CRID", @"crid",nil];


    epgMapping.primaryKeyAttribute = @"crid";

Любая помощь будет оценена по достоинству, так как я читал различные документы и рассматривал проблемы других людей и не мог найти решения.

Спасибо


person user641902    schedule 22.10.2012    source источник


Ответы (1)


Вы сохраняете значение в части имени пары имя-значение json. Предложите изменить свой json (если можете) на что-то вроде этого:

"Name" : "BBC ONE",
"Programs" : [
    {
        "Name": "Programme 1",
        "Description": "A desc of a programme",
        "ONID": 1,
        "TSID": 2,
        "SID": 3,
        "CRID": "crid_address"
    },
    {
        "Name": "Programme 2",
        "Description": " Another desc",
        "ONID": 9,
        "TSID": 99,
        "SID": 999,
        "CRID": "crid_2"
    }
person Bob Provencher    schedule 23.10.2012
comment
Хорошо, я думал, что мне, возможно, придется изменить структуру, но надеялся, что у кого-то еще может быть идея, как ее разобрать. - person user641902; 24.10.2012