Swift: преобразовать строку JSON в массив пользовательского объекта с помощью ObjectMapper
В настоящее время я использую ObjectMapper для Swift (см. 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"]
}
}
Ответы
Ответ 1
Я нашел решение, которое, кажется, работает:
var list: Array<ProductVariant> = Mapper<ProductVariant>().mapArray(string: json)
Когда я петлю через массив, он дает мне правильные атрибуты для CustomObject
.
Моя ошибка заключалась в том, что я попытался поместить Array
в тип Mapper
, как показано в моем вопросе.
Ответ 2
Другой вариант:
let products = Mapper<ProductVariant>().mapArray(JSONString: json)