RestKit: привязать вложенный массив к объекту
У меня есть два класса для отображения ответа JSON: Item
и FrequentProps
Элемент обладает следующими свойствами:
frequentProps, identifier, name
FrequentProps обладает свойствами
propOne
propTwo
propThree
propFour
Вы можете видеть, что frequentProps
в Item
имеют тип FrequentProps
.
Рассмотрим следующий ответ JSON:
[
{
"frequentProps": [
{
"propOne": 174
},
{
"propTwo": 9.726
},
{
"propThree": 2.021
},
{
"propFour": 25.07
}
],
"identifier": "4223",
"name": "TheName"
}
]
Внешняя часть JSON должна быть сопоставлена с объектом класса Item
, вложенный объект Array должен быть сопоставлен с frequentProps
как свойство объекта. К сожалению, frequentProps
не отображается в Item
недвижимости с тем же именем, но в NSArray
(если определить тип собственности как NSArray
, в противном случае имущество остается ноль).
Здесь конфигурация:
RKObjectMapping *itemMapping = [RKObjectMapping mappingForClass:[Item class]];
[item addAttributeMappingsFromDictionary:[Item attributesMapping]];
RKObjectMapping *frequentPropsMapping = [RKObjectMapping mappingForClass:[FrequentProps class]];
[frequentPropsMapping addAttributeMappingsFromDictionary:[FrequentProps attributesMapping]];
[itemMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"frequentProps"
toKeyPath:@"frequentProps"
withMapping:frequentProps]];
// adding the response descriptor, etc...
Как я могу отображать frequentProps
объекты непосредственно в объект типа FrequentProps
, который остается свойством Item
?
Вы не можете, потому что в сопоставлении нет способа указать, что вы индексируете в массив и помещаете этот индекс в указанный ключ. Я ожидаю, что это никогда не будет поддержано.
Не идеально, но: что вы могли бы сделать, чтобы добавить свойство массива, используя собственный метод настройки. Когда вызывается сеттер, мутируйте данные, создавая экземпляр FrequentProps
и устанавливая свойства из содержимого массива.
Еще в рубрике
Другие вопросы
- Вопросы
- Restkit-0.20
- RestKit: привязать вложенный массив к объекту