Сопоставление объектов в RestKit - PullRequest
3 голосов
/ 05 июля 2011

У меня есть ответ JSON этого формата

{"status":
{
"id":0,
"offerList":[{"offerId":38,"title":"TITLE OFFER 38","shortDescription":"OFFER PCT 38","orginalPrice":100,"image":"offer-38.jpg","description":"DESCRIPTION OFFER 38","shopId":4,"startDate":"5/29/2011 12:00:00 AM","endDate":"8/10/2011 12:00:00 AM","startTime":"16:30:00","endTime":"21:59:59","insertionDate":"7/5/2011 4:42:40 AM","categoryId":0,"subCategoryId":0,"published":1}

"shopList":[{"id":4,"name":"Store 1","street":"Street Store 1","postCode":"88214","city":"Barcelona","state":"","country":"Spain, Kingdom of","description":"Loc Description Store 1","url":"http://www.store-1.com","email":"store1@gmail.com","telephone":"Phone-number-store-1","published":1,"lastUpdated":"7/5/2011 4:42:40 AM","latitude":41.4398,"longitude":2.1601}]
}
}

Я использую restkit для сопоставления объектов.Что может быть возможным способом сопоставить этот JSON с помощью RKManaged Object.Может ли кто-нибудь помочь, пожалуйста.Я застрял в течение последних 3 дней.Спасибо

Ответы [ 3 ]

4 голосов
/ 06 июля 2011

Зак, вы, вероятно, должны задать этот вопрос в списке рассылки RestKit и быть более точным относительно того, чего вы хотите достичь.

Независимо, автор RestKit Блейк Уоттерс только что опубликовал новый документ, описывающий сопоставление объектов , который должен ответить на все ваши вопросы.Удачи!

1 голос
/ 23 февраля 2012

Возможно, это не поможет, но у меня была проблема, когда RestKit аварийно завершал работу при попытке сопоставить мои объекты, и проблема заключалась в том, что я пытался сопоставить значение с keypath 'description'.Это было невозможно сделать, потому что «описание» является ключевым словом в Objective-C.Попробуйте сменить это имя на другое.

0 голосов
/ 14 июля 2011

Zach,

Каким бы ни было имя соответствующего отображения в JSON, вы называетесь keyPath . Использование RestKit 0.9.2 с новым сопоставлением объектов:

Я предполагаю, что вам нужно отношение «один ко многим» от Status (родительский) к Offers and Shops (дочерний), и имена свойств здесь неявные.

Обычно в делегате приложения вы можете настроить сопоставления, например, так:

RKObjectMapping* statusMapping = [RKObjectMapping mappingForClass:[Status class]];
[statusMapping mapKeyPathToAttributes:@"statusId",@"id"] // This maps JSON status.id to objc Status.statusId

RKObjectMapping* offerMapping = [RKObjectMapping mappingForClass:[Offer class]];
// Add more pairs as needed in the line below
[offerMapping mapKeyPathToAttributes:@"offerId",@"offerId",@"title",@"title",@"shortDescription",@"shortDescription"];

//Do the same thing for your Shop mapping

//Configure relationships:
//Assumes Status class has a property of type NSArray* offers that will contain multiple orders
[statusMapping mapKeyPath:@"orderList" toRelationship:@"orders" withObjectMapping:offerMapping];

//Do the same thing for your Shop relationship

С уважением,

...