2015-03-26 3 views
3

С помощью RestKit я пытаюсь создать сопоставление запросов, которое преобразует объект payment в JSON. Этот объект хранит суб-платежи, из которых только один действителен. Этот действительный платеж представлен имуществом selectedPayment. Я считаю, что типичный подход для этого заключается в использовании сопоставления отношений, однако я не хочу, чтобы selectedPayment отображался как вложенный ключ. Пример результата моего нынешнего подхода ниже:Иерархия сопоставления запросов сложения в RestKit

{ 
    "requestUserId" : "6", 
    "payment" : { 
    "selectedPayment" : { 
     "amount" : "5", 
     "id" : 70, 
     "type" : "SOME_TYPE" 
    } 
    } 
} 

Мой желаемый результат заключается в следующем:

{ 
    "requestUserId" : "6", 
    "payment" : { 
    "amount" : "5", 
    "id" : 70, 
    "type" : "SOME_TYPE" 
    } 
} 

Я попытался многочисленные варианты назначения ключевого пути моего отношения отображения в: @root, @parent, "", nil. Все из которых привели к сбою (кроме "", который гнездится для выбранного платежа под пустой клавишей).

Я мог бы изменить сопоставление атрибутов отображения запроса, который используется для selectedPayment явно использовать @root или @parent, но это не было бы идеальным, поскольку это может негативно повлиять на другие области, в которых используется отображение.

Это похоже на типичное поведение, преобразование «глубокого» представления объекта в «мелкое» представление JSON, конечно, есть простой способ сделать это?

ответ

0

Не используйте сопоставление отношений, вместо этого используйте ключевые пути в своем одиночном сопоставлении, чтобы перейти в свойство и извлечь нужные ключи. Таким образом, вы должны использовать , selectedPayment.id и selectedPayment.type в качестве путей ключа источника при отображении и amount, id и type В качестве соответствующих ключей пункта назначения.

+0

Это то, чего я надеялся избежать, и похоже на то, что я имел в виду под «Я мог бы изменить сопоставления атрибутов отображения запроса, который используется для selectedPayment ...». У меня есть разные раскладки, которые позволяют повторно использовать их, изменяя один из них, или перепрограммируя его, чтобы победить эту цель. Было бы неплохо, если бы RestKit обладал свойством «префикс» для сопоставлений, что по существу делало бы то, что вы предлагаете, но в более многоразовом виде. – Arkcann

1

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

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