我目前正在使用Swift的ObjectMapper(参见:https://github.com/Hearst-DD/ObjectMapper/)将String
从HTTP请求转换为自定义类的对象。我从请求中获得的JSON是一个JSON数组,我想将其转换为Array
类型的CustomObject
。
我试过这样的话:
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"]
}
}
答案 0 :(得分:34)
我找到了一个似乎有效的解决方案:
var list: Array<ProductVariant> = Mapper<ProductVariant>().mapArray(string: json)
当我遍历数组时,它为CustomObject
提供了正确的属性。
我的错误是我试图将Array
放在Mapper
的类型中,如我的问题所示。
答案 1 :(得分:2)
另一种选择是
let products = Mapper<ProductVariant>().mapArray(JSONString: json)