Restkit 映射复杂的嵌套数组

Posted

技术标签:

【中文标题】Restkit 映射复杂的嵌套数组【英文标题】:Restkit mapping complex nested array 【发布时间】:2013-01-10 01:31:00 【问题描述】:

我正在尝试使用 restkit 来读取/解析 xml 提要。其中包含一组嵌套的艺术家。我可以映射其他关系,但不清楚我要如何处理下面的艺术家关系。

我的数据集如下所示:

<JamBase_Data>
<Results_Title>Jersey City, NJ</Results_Title>
<event>
<event_id>1896611</event_id>
<artists>
    <artist>
        <artist_id>96929</artist_id>
        <artist_name>The Happy Problem</artist_name>
    </artist>
    <artist>
        <artist_id>29817</artist_id>
        <artist_name>Craig Greenberg</artist_name>
    </artist>
    </artists>
<event_date>1/9/2013</event_date>
<venue>
<venue_id>48553</venue_id>
<venue_name>The Cake Shop</venue_name>
<venue_city>New York</venue_city>
<venue_state>NY</venue_state>
<venue_zip>10002</venue_zip>
</venue>
<event_url>
http://www.jambase.com/Shows/Event.aspx?eventID=1896611
</event_url>
</event>
</JamBase_Data>  

映射:

RKObjectMapping *eventMapping = [RKObjectMapping mappingForClass:[Event class]];
RKObjectMapping *artistMapping = [RKObjectMapping mappingForClass:[Artist class]];
RKObjectMapping *venueMapping = [RKObjectMapping mappingForClass:[Venue class]];

[artistMapping mapKeyPathsToAttributes: @"artist_name",@"artist_name", nil];
[venueMapping mapKeyPathsToAttributes: @"venue_city",@"venue_city",@"venue_state",@"venue_state", @"venue_name", @"venue_name", nil];

[objectManager.mappingProvider setMapping:eventMapping forKeyPath:@"JamBase_Data.event"];


[eventMapping mapKeyPath:@"artists" toRelationship:@"artists" withMapping:artistMapping];
[eventMapping mapKeyPath:@"venue" toRelationship:@"venue" withMapping:venueMapping];

Venue.h

@interface Event : NSObject
@property (nonatomic, strong) NSSet *artists;
@property (strong, nonatomic) Venue *venue;

@结束

艺术家.h

@interface Artist : NSObject
@property (nonatomic, strong) NSNumber *artist_id;
@property (nonatomic, strong) NSNumber *artist_name;

我可以让场地正确映射,但无法弄清楚如何让艺术家进行映射。我需要做些什么来告诉对象管理器结束事件吗?

任何帮助将不胜感激,因为这是我第一次涉足 ios 开发。

【问题讨论】:

【参考方案1】:

您在 XML 中看到的 Artists 对象转换为 NSArray。现在它包含了 Artists 类型的对象。你有没有这样想过?

【讨论】:

我希望 Artists 映射到 Venue 中的 NSSet *artists。但是当我尝试阅读它时,我没有填充任何元素。`

以上是关于Restkit 映射复杂的嵌套数组的主要内容,如果未能解决你的问题,请参考以下文章

RestKit 0.20:映射复杂的动态嵌套 JSON

Restkit 0.20 嵌套对象数组映射问题

RestKit:将嵌套数组映射到对象

带有数组映射的restkit嵌套对象

RestKit .22:无法成功映射与嵌套 JSON 的关系

RestKit EntityMapping 与嵌套数组