Json 使用RestKit映射时间

Json 使用RestKit映射时间,json,core-data,sqlite,restkit,Json,Core Data,Sqlite,Restkit,我有一个iOS项目,它使用RESTKit0.21.0组件负责从远程服务器获取、解析和存储核心数据响应。在一个后端JSON响应中,我有如下内容: "response": [ { "id": 1, "start_time": "10:00:00", "end_time": "14:00:00", "name": "Object name" }, . . . ] 在Model.xcdatamodeld中,我定义了带有startTime和endTim

我有一个iOS项目,它使用RESTKit0.21.0组件负责从远程服务器获取、解析和存储核心数据响应。在一个后端JSON响应中,我有如下内容:

"response": [
  {
    "id": 1,
    "start_time": "10:00:00",
    "end_time": "14:00:00",
    "name": "Object name"
  },
  .
  .
  .
]
在Model.xcdatamodeld中,我定义了带有startTime和endTime类型日期字段的实体。通常,所有JSON响应到对象的映射都能正常工作,但我对JSON字段start_time和end_time有问题


您对如何将时间字段正确映射到可存储在核心数据(SQLite datatbase)中的数据有何建议?

创建一个具有适当格式的
NSDateFormatter
,以解析您的时间字符串。使用
[[RKValueTransformer defaultValueTransformer]insertValueTransformer:dateFormatter atIndex:0]添加日期格式化程序。现在,只要需要映射到
NSDate
目的地,RestKit就会搜索所有定义的日期格式化程序以及默认的格式。

继承了一个广泛使用RestKit的应用程序,现在已经是0.21版本了,而且非常棒。需要在YYYY-MM-DD HH:MM:SS.SSS中添加日期到字符串的转换,并按照上面的建议将所需的日期格式化程序添加到索引0处的默认复合格式化程序中。但是,通过在索引0处添加ISO8601格式化程序,在+(void)initialize中找到了对RKObjectMapping的调用,以实现向后兼容性。注释掉这些行,我得到了正确的结果。我想这可能是应用程序的结构方式,对RKObjectMapping的调用不多,如果不更改RKObjectMapping,就不可能在正确的位置添加日期格式化程序

韦恩,谢谢你的提示。我添加了dateFormatter,但现在得到了奇怪的结果。例如,字符串“12:00:00”作为-24866870400存储在数据库中,NSLog中显示为1213-01-01 00:00:00+0000。所以这不是我所期望的,我知道。在中,我将Model.xcdatamodeld中的实体字段定义为日期,它在SQLite数据库模式中作为列时间戳可见。我在问日期格式化程序。该日期的戳记应为
1357020000
,因此某些内容不匹配。好的,我已将NSDateFormatter设置为[timeFormatter setDateFormat:@“HH:mm:ss”];在索引0处添加您的应使其优先于所有内置转换器。尝试在RKValueTransformers.m中调试valueTransformersForTransformingFromClass