我正在尝试解析以下JSON,但是我收到以下错误。
“错误无法找到keyPath的对象映射:''”
据我所知,这是因为我没有提供SetMapping:forKeyPath:但是我无法设置它,因为密钥会随着您在JSON中的显示而改变,例如BBC ONE,BBC TWO等等。 我不需要保存服务名称,因为我计划将SID与另一个json文件交叉引用,该文件包含存储在核心数据中的这些详细信息以提供此信息。 (如果它是可能的)。 有没有解决这个错误的方法?
这是我的JSON(缩减版)
{
"BBC ONE": [
{
"Name": "Programme 1",
"Description": "A desc of a programme",
"ONID": 1,
"TSID": 2,
"SID": 3,
"CRID": "crid_address"
},
{
"Name": "Programme 2",
"Description": " Another desc",
"ONID": 9,
"TSID": 99,
"SID": 999,
"CRID": "crid_2"
}
],
"BBC TWO": [
{
"Name": "bbc_programme",
"Description": "programme 2",
"Event ID": 4,
"ONID": 9,
"TSID": 4,
"SID": 4,
"CRID": "crid"
}
]
}
等等。
这是我的代码:
RKManagedObjectMapping *epgMapping = [RKManagedObjectMapping mappingForClass:[Epg class] inManagedObjectStore:objectManager.objectStore];
[epgMapping mapKeyPathsToAttributes:@"Name",@"name",
@"Description", @"desc",
@"Event ID", @"event_id",
@"ONID", @"onid",
@"TSID", @"tsid",
@"SID", @"sid",
@"CRID", @"crid",nil];
epgMapping.primaryKeyAttribute = @"crid";
任何帮助将不胜感激,因为我已阅读各种文件,并查看其他人的问题,无法找到解决方案。
由于
答案 0 :(得分:1)
您将值存储在json名称 - 值对的名称部分中。建议将你的json(如果可以的话)更改为:
"Name" : "BBC ONE",
"Programs" : [
{
"Name": "Programme 1",
"Description": "A desc of a programme",
"ONID": 1,
"TSID": 2,
"SID": 3,
"CRID": "crid_address"
},
{
"Name": "Programme 2",
"Description": " Another desc",
"ONID": 9,
"TSID": 99,
"SID": 999,
"CRID": "crid_2"
}