Как я могу сделать отображение массива с помощью objectmapper?
у меня есть модель ответа, которая выглядит так:
class ResponseModel: Mappable {
var data: T?
var code: Int = 0
required init?(map: Map) {}
func mapping(map: Map) {
data <- map["data"]
code <- map["code"]
}
}
если JSON-data не является массивом, он работает:
{"code":0,"data":{"id":"2","name":"XXX"}}
но если это массив, он не работает
{"code":0,"data":[{"id":"2","name":"XXX"},{"id":"3","name":"YYY"}]}
мой код отображения;
let apiResponse = Mapper<ResponseModel>().map(JSONObject: response.result.value)
подробнее; Я попробовал этот код, используя эту статью:http://oramind.com/rest-client-in-swift-with-promises/
4 ответов
вам нужно использовать mapArray
вместо map
:
let apiResponse = Mapper<ResponseModel>().mapArray(JSONObject: response.result.value)
любой, кто использует SwiftyJSON, и если вы хотите объект из JSON напрямую, не имея родительского класса, например, вы хотите "данные" от него. Вы можете сделать что-то вроде этого,
if let data = response.result.value {
let json = JSON(data)
let dataResponse = json["data"].object
let responseObject = Mapper<DataClassName>().mapArray(JSONObject: dataResponse)
}
вернуться [DataClassName]?
в качестве ответа.