2013-02-09 136 views
0

我完全卡住试图映射此JSON数据:Restkit映射

{ 
    "All_Data": [ 
    { 
     "TANTENNE": [ 
     {"ID": 2068, "KIND": "PARABOLE"}, 
     {"ID": 2069, "KIND": "ANTENNE TNT HERTZIENNE"}, 
     {"ID": 2070, "KIND": "ANTENNE COLLECTIVE"}, 
     {"ID": 2071, "KIND": "PARABOLE PLATE"} 
     ], 
     "totalCount": 4, 
     "success": true 
    }, 
    { 
     "success": true, 
     "FANTENNE": [ 
     {"ID": 1121, "CONNECT": "Autre"}, 
     {"ID": 1122, "CONNECT": "Neovia"}, 
     {"ID": 1124, "CONNECT": "non"}, 
     {"ID": 1125, "CONNECT": "oui"}, 
     {"ID": 1126, "CONNECT": "Patch"}, 
     {"ID": 1127, "CONNECT": "SRTD"}, 
     {"ID": 1128, "CONNECT": "Standard"} 
     ], 
     "totalCount": 7 
    }, 
    { 
     "MANTENNE": [ 
     {"ID": 2065, "STATUS": "NON PRESENTE", "ACTION": 1}, 
     {"ID": 2066, "STATUS": "DEFECTUEUSE", "ACTION": 2}, 
     {"ID": 2067, "STATUS": "2EME ANTENNE POSEE", "ACTION": 3} 
     ], 
     "totalCount": 3, 
     "success": true 
    }, 
    { 
     "totalCount": 5, 
     "LANTENNE": [ 
     {"ID": 1139, "LOCATION": "AU SOL"}, 
     {"ID": 1140, "LOCATION": "Balcon"}, 
     {"ID": 1142, "LOCATION": "FACADE"}, 
     {"ID": 1143, "LOCATION": "Toit"}, 
     {"ID": 2064, "LOCATION": "JARDIN"} 
     ], 
     "success": true 
    }, 
    ], 
    "success": true 
} 

考虑到我有核心数据实体(以及相关的类的所有单个叶对象(TANTENNEFANTENNEMANTENNELANTENNE)。

当我收到上述JSON,我想插入的TANTENNE 4个实例中,FANTENNE 7个实例中,MANTENNE 3个实例,以及5个实例LANTENNE

我个人映射那些类,例如:

RKManagedObjectMapping *mapping = [RKManagedObjectMapping mappingForEntityWithName:@"TANTENNE" inManagedObjectStore:self.objectStore]; 
mapping.primaryKeyAttribute = @"id"; 

[mapping mapKeyPathsToAttributes: 
@"ID", @"id", 
@"KIND", @"kind", 
nil]; 

[self setObjectMapping:mapping forKeyPath:@"TANTENNE"]; 

这就是所谓的在我的映射提供的初始化时间。但是,这显然是不够的,因为我得到控制台消息如

[…] T restkit.object_mapping:RKObjectMapper.m:293 Examining keyPath 'TANTENNE' for mappable content... 
[…] D restkit.object_mapping:RKObjectMapper.m:303 Found unmappable value at keyPath: TANTENNE 

如果我添加使用“All_Combo.TANTENNE”关键路径,然后RestKit崩溃后试图映射一个完整的阵列到一个目标对象的映射。

这是与RestKit 0.10(我没有移动到0.20,因为所有的魔法记录的东西都没了,我用了很多)。

感谢您的任何见解。

+0

这方面的进展如何?我遇到了同样的事情。 – 2013-04-18 22:23:24

回答

0

我想到的事情可能会破坏你的映射。

1)根密钥路径 配置根通过mapping.rootKeyPath = @"All_Data" VOR每个映射关键路径,以确保对关键路径“TANTENNE”映射不希望在你返回的JSON的根目录下的值。

2)数组内字典 由于事实上这些“TANTENNE”的值在字典中发送,如果可能需要使用额外的配合。通过使用[mapping mapRelationship:@"TANTENNE" withMapping:mapping];将“TANTENNE”数组的根连接到字典中的值 - 也许它有效。