Swift:使用ObjectMapper将JSON字符串转换为自定义对象数组

时间:2015-03-24 16:31:12

标签: json swift

我目前正在使用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"]
    }
}

2 个答案:

答案 0 :(得分:34)

我找到了一个似乎有效的解决方案:

var list: Array<ProductVariant> = Mapper<ProductVariant>().mapArray(string: json)

当我遍历数组时,它为CustomObject提供了正确的属性。

我的错误是我试图将Array放在Mapper的类型中,如我的问题所示。

答案 1 :(得分:2)

另一种选择是

let products = Mapper<ProductVariant>().mapArray(JSONString: json)