【发布时间】:2015-03-24 16:31:11
【问题描述】:
我目前正在使用 ObjectMapper for Swift(请参阅:https://github.com/Hearst-DD/ObjectMapper/)将 String 从 HTTP 请求转换为自定义类的对象。我从请求中得到的 JSON 是一个 JSON 数组,我想将其转换为 CustomObject 类型的 Array。
我试过这样:
var object = Mapper<Array<CustomObject>>().map(string: json)
然后我得到一个错误:Can not find member 'map'。
这应该怎么做?
编辑:这是我的CustomObject 班级,从现在开始称为ProductVariant:
public class ProductVariant: Mappable {
/* Attributes */
public var id = 0
// var size : Size = nil
public var SKU = ""
public var stock = 0
public var numberOfDefects = 0
/* Constructors */
public init?() {
// Empty Constructor
}
required public init?(_ map: Map) {
mapping(map)
}
/* Methods */
public func mapping(map: Map) {
id <- map["id"]
SKU <- map["SKU"]
stock <- map["stock"]
numberOfDefects <- map["numberOfDefects"]
}
}
【问题讨论】:
-
我猜你没有实现 ObjectMapper 文档中给出的“
Mappable协议。如果不是这种情况,你能发布你的CustomObject映射吗? -
感谢您的评论!我已经实现了
Mappable协议,并且我已经更新了我的问题。 -
如果你使用 ObjectMapper 来映射 HTTP 响应,你应该考虑使用AlamofireObjectMapper。它是 Alamofire 的一个简单扩展,它使用 ObjectMapper 自动将您的响应转换为 swift 对象。全面披露:我是 ObjectMapper 和 AlamofireObjectMapper 的作者