Swift: convertissez la chaîne JSON en tableau D'objet personnalisé avec ObjectMapper

j'utilise actuellement ObjectMapper pour Swift (voir:https://github.com/Hearst-DD/ObjectMapper/) pour convertir un String d'une requête HTTP à un objet d'une classe personnalisée. Le JSON que j'obtiens de la requête est un JSON Array, et je voudrais le convertir en Array de type CustomObject.

j'ai essayé comme ceci:

var object = Mapper<Array<CustomObject>>().map(string: json)

Mais ensuite, j'obtiens une erreur: Can not find member 'map'.

Comment faut-il procéder?

Edit: c'est mon CustomObject Classe, à partir de maintenant appelé 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"]
    }
}
18
demandé sur bashoogzaad 2015-03-24 19:31:11

2 réponses

j'ai trouvé une solution qui semble fonctionner:

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

Quand je boucle à travers le tableau, il me donne les attributs corrects pour l' CustomObject.

Mon erreur est que j'ai essayé de mettre le Array dans le type de Mapper, comme indiqué dans ma question.

34
répondu bashoogzaad 2015-03-25 10:37:12

une autre option est

let products = Mapper<ProductVariant>().mapArray(JSONString: json)
1
répondu Bogdan Ustyak 2017-02-28 11:48:36