2013-02-09 5 views
0

Я полностью застрял, пытаясь отобразить эту JSON данные:Restkit отображение множества разнородных массивов

{ 
    "All_Data": [ 
    { 
     "TANTENNE": [ 
     {"ID": 2068, "KIND": "PARABOLE"}, 
     {"ID": 2069, "KIND": "ANTENNE TNT HERTZIENNE"}, 
     {"ID": 2070, "KIND": "ANTENNE COLLECTIVE"}, 
     {"ID": 2071, "KIND": "PARABOLE PLATE"} 
     ], 
     "totalCount": 4, 
     "success": true 
    }, 
    { 
     "success": true, 
     "FANTENNE": [ 
     {"ID": 1121, "CONNECT": "Autre"}, 
     {"ID": 1122, "CONNECT": "Neovia"}, 
     {"ID": 1124, "CONNECT": "non"}, 
     {"ID": 1125, "CONNECT": "oui"}, 
     {"ID": 1126, "CONNECT": "Patch"}, 
     {"ID": 1127, "CONNECT": "SRTD"}, 
     {"ID": 1128, "CONNECT": "Standard"} 
     ], 
     "totalCount": 7 
    }, 
    { 
     "MANTENNE": [ 
     {"ID": 2065, "STATUS": "NON PRESENTE", "ACTION": 1}, 
     {"ID": 2066, "STATUS": "DEFECTUEUSE", "ACTION": 2}, 
     {"ID": 2067, "STATUS": "2EME ANTENNE POSEE", "ACTION": 3} 
     ], 
     "totalCount": 3, 
     "success": true 
    }, 
    { 
     "totalCount": 5, 
     "LANTENNE": [ 
     {"ID": 1139, "LOCATION": "AU SOL"}, 
     {"ID": 1140, "LOCATION": "Balcon"}, 
     {"ID": 1142, "LOCATION": "FACADE"}, 
     {"ID": 1143, "LOCATION": "Toit"}, 
     {"ID": 2064, "LOCATION": "JARDIN"} 
     ], 
     "success": true 
    }, 
    ], 
    "success": true 
} 

Учитывая, что у меня есть объекты Основные данные (и связанные с ними классы для всех объектов индивидуального листа (TANTENNE, FANTENNE, MANTENNE , LANTENNE).

Когда я получить выше JSON, Я хотел бы вставить 4 экземпляров TANTENNE, 7 экземпляров FANTENNE, 3 экземпляров MANTENNE и 5 экземпляров LANTENNE.

У меня есть отдельные сопоставления для этих классов, например .:

RKManagedObjectMapping *mapping = [RKManagedObjectMapping mappingForEntityWithName:@"TANTENNE" inManagedObjectStore:self.objectStore]; 
mapping.primaryKeyAttribute = @"id"; 

[mapping mapKeyPathsToAttributes: 
@"ID", @"id", 
@"KIND", @"kind", 
nil]; 

[self setObjectMapping:mapping forKeyPath:@"TANTENNE"]; 

Это вызывается во время инициализации моего провайдера отображения. Но это явно не достаточно, так как я получаю сообщение консоли, такие как

[…] T restkit.object_mapping:RKObjectMapper.m:293 Examining keyPath 'TANTENNE' for mappable content... 
[…] D restkit.object_mapping:RKObjectMapper.m:303 Found unmappable value at keyPath: TANTENNE 

Если добавить отображение с помощью «All_Combo.TANTENNE» ключевого путем, затем RestKit происшествиям позже пытаемся отобразить полный массив одного объекта назначения.

Это с RestKit 0.10 (я не переместился на 0.20, потому что все магические записи исчезли, и я использую его много).

Спасибо за понимание.

+0

Прогресс в этом вопросе? Я сталкиваюсь с тем же. –

ответ

0

У меня есть вещи, которые, возможно, сломают ваше картографирование.

1) Root Key Path Настройка корневой ключ путь через mapping.rootKeyPath = @"All_Data" VOR каждого отображения, чтобы гарантировать, что отображение для ключевого пути «TANTENNE» не было бы ожидать, что значение в корневом каталоге вашего возвращенного JSON.

2) Словарь внутри массива Из-за того, что эти значения «TANTENNE» отправляются в словаре, если это может быть требование использовать дополнительную конфлификацию. Подключение корня массива «TANTENNE» к значениям внутри словаря с помощью [mapping mapRelationship:@"TANTENNE" withMapping:mapping]; - возможно, это работает.

Смежные вопросы