2015-02-24 5 views
0

Я дал JSON и не могу разобрать частичные данные. Кажется, словарь в словаре:RestKit JSON Mapping

{ 
    "products": [ 
     { 
      "id": 6796, 
      "title": "my title", 
      "description": "desc", 
      "code": "12345", 
      "valueType": "null", 
      "discounts": [ 
       { 
        "minPrice": null, 
        "maxPrice": null, 
        "value": 20, 
        "avail": false 
       } 
      ] 
     } 
    ] 
} 

Я использую последнюю версию RESTKit, но я не могу правильно разобрать под discounts.

мои настройки RestKit являются:

responseMapping.addAttributeMappingsFromDictionary([ 

      "id"      : "id", 
      "code"      : "code", 
      "title"      : "title", 
      "valueType"     : "valueType", 
      "description"    : "desc", 
      "discounts.minPrice"  : "minPrice", 
      "discounts.maxPrice"  : "maxPrice", 
      "discounts.value"   : "value", 
      "discounts.avail" : "avail", 
      ]) 

, но все значения ниже скидки всегда возвращают NIL. Что я делаю неправильно?

ответ

1

Вы не можете напрямую нанести карту, используя discounts.XXX, потому что discounts - это массив, и вы не имеете возможности индексировать этот массив и извлекать одно значение.

Вам нужно либо изменить исходный JSON, чтобы сжать значения из словаря, либо создать настраиваемый объект, который можно сопоставить каждому элементу в массиве discounts.

Технически вы можете сопоставить весь массив discounts, который предоставит вам массив словарей, которые можно было бы распаковать в методе setter, но массив пользовательских объектов обычно является лучшим подходом.

+0

Благодарим, что попробую и уточню вас – Anton

+0

Это помогло мне. Я сопоставил с отношением отношения вложенного массива как разделенный словарь. – Anton