Restkit:如何访问原始JSON文件的一部分并映射到属性

时间:2015-10-28 13:57:37

标签: json restkit-0.20 rkobjectmapping

我正在尝试使用Restkit将JSON文件映射到我的类。我遇到了问题,如何将嵌套属性映射到类。

startTime& endTime没有正确映射,是否有一种方便的方式来访问它(“start.datetime”不起作用)。我不想创建无用的Start类,因为我必须访问像event.start.datetime这样的属性。我只想像event.startTime

那样访问它

有没有解决方案?

JSON回复

{
  "kind": "calendar#event",
  "id": "f8v1p959doracohm5jk49gmbp4",
  "created": "2015-10-16T16:52:22.000Z",
  "updated": "2015-10-16T16:52:23.114Z",
  "summary": "fuck",
  "organizer": {
    "email": "jaa9s9d3gobhbmovrotujd06h8@group.calendar.google.com",
    "displayName": "primary",
    "self": true
  },
  "start": {
    "dateTime": "2015-10-11T03:00:00+08:00"
  },
  "end": {
    "dateTime": "2015-10-11T04:00:00+08:00"
  },
  "sequence": 0,
  "reminders": {
    "useDefault": true
  }
}

班级定义

class SGEvent: NSObject {
    var identifier: String!
    var title: String!
    var createdAt: NSDate?
    var updatedAt: NSDate?
    var notes: String!
    var location: String?
    var startTime: NSDate!
    var endTime: NSDate!
    var allDay: Bool! = false
}

我的代码:

    let eventMapping = RKObjectMapping(forClass: SGEvent.self)
    eventMapping.addAttributeMappingsFromDictionary([
        "id":               "identifier",
        "created":          "createdAt",
        "summary":          "title",
        "location":         "location",
        "start.datetime":   "startTime",
        "end.datetime":     "endTime"
        ])

1 个答案:

答案 0 :(得分:0)

我已经找到了问题所在。这是访问该属性的正确语法。问题在于Google的日期格式。 2015-10-11T03:00:00+08:00不是标准日期格式。因此,RestKit的默认变换器无法传输此信息。