Mapping из JSON в объекты модели. Массив из массивов

Рейтинг: 0Ответов: 1Опубликовано: 10.10.2014

Имеется вот такой JSON

{
    "offline": false,
    "data": {
        "path": [
            [ {
                    "Latitude": 56.789351316653,
                    "Longitude": 60.6053340947616
                }, {
                    "Latitude": 56.78674,
                    "Longitude": 60.60613
                }
            ], [ {
                    "Latitude": 56.79071,
                    "Longitude": 60.60492
                }, {
                    "Latitude": 56.79129,
                    "Longitude": 60.60493
                } ]
        ] } }

и моделька для него на swift

class PointUpperCase: NSObject, MapperCreator {
    var Latitude = 0.0
    var Longitude = 0.0

    class func createMapper() -> RKObjectMapping? {
        let mapper = RKObjectMapping(forClass: PointUpperCase.self)
        mapper.addAttributeMappingsFromArray(["Latitude", "Longitude"])
        return mapper
    }

}

class Data: NSObject, MapperCreator{
    var path :[[PointUpperCase]] = [[PointUpperCase]()]

    class func createMapper() -> RKObjectMapping? {

        let mapper = RKObjectMapping(forClass: Data.self)
        mapper.addRelationshipMappingWithSourceKeyPath("path", mapping: PointUpperCase.createMapper())
        return mapper
    }
}

class TransportRequestResult: NSObject, MapperCreator {
    var offline = false
    var data = Data()

    class func createMapper() -> RKObjectMapping? {
        let mapper = RKObjectMapping(forClass: TransportRequestResult.self)
        mapper.addAttributeMappingsFromArray(["offline"])
        mapper.addRelationshipMappingWithSourceKeyPath("data", mapping: Data.createMapper())
        return mapper
    }
}

Так вот, проблема заключается в следующем: не удается распарсить поле path из json, из-за того, что там массив из массивов объектов.
Как я понимаю, нужно правильно инициализировать переменную path в модели, но не совсем понимаю, как это сделать.
В случае массивов единичной размерности все работает хорошо.

Ответы

▲ 2

Используйте SwiftyJSON там все понятно и очень удобно расписано