将json响应转换为领域对象

将json响应转换为领域对象,json,swift,realm,alamofire,objectmapper,Json,Swift,Realm,Alamofire,Objectmapper,您好,我正在尝试将json响应从web服务转换为领域对象,并使用对象映射器将其插入领域数据库,但返回空值的对象 Alamofire.request(url).responseJSON { response in let products = Mapper<ProRealm>().map(JSONObject:response.result.value) print("products",products) // object with null values

您好,我正在尝试将json响应从web服务转换为领域对象,并使用对象映射器将其插入领域数据库,但返回空值的对象

Alamofire.request(url).responseJSON { response in
   let products = Mapper<ProRealm>().map(JSONObject:response.result.value)
        print("products",products) // object with null values
   }

请告知除
更新的
是食品或饮料的
外,您的所有财产都是
可售的
,因此它们可能是
无的
。如果您知道它们应该有一个值,但仍然得到nil,请确保检查映射函数中的键

更新:
我不能100%确定这是如何与
Mappable
语法一起工作的,但您需要这样做:

class Products: Object, Mappable {
    let products: [Product]?

    //Impl. of Mappable protocol
    required convenience init?(map: Map) {
        self.init()
    }

    func mapping(map: Map) {
        products    <- map["products"]
    }
}

class Product: Object, Mappable {
    dynamic var additives_count: String?
    var rating: String?
    var updated: Bool = false;
    var name: String?
    var barcode: String?
    var product_key: String?
    var hazard_count: String?
    var state: String?
    var no_of_users_rated: String?
    var thumbnail: String?
    var overall_rating : String?
    var is_food_or_beverage : Bool = false

    //Impl. of Mappable protocol
    required convenience init?(map: Map) {
        self.init()
    }

    func mapping(map: Map) {
        additives_count    <- map["additives_count"]
        rating <- map["rating"]
        updated <- map["updated"]
        name <- map["name"]
        barcode <- map["barcode"]
        product_key <- map["product_key"]
        hazard_count    <- map["hazard_count"]
        state <- map["state"]
        no_of_users_rated <- map["no_of_users_rated"]
        thumbnail <- map["thumbnail"]
        overall_rating <- map["overall_rating"]
        is_food_or_beverage <- map["is_food_or_beverage"]
    }
}
类产品:对象,可映射{
让产品:[产品]?
//可映射协议的实现
所需便利初始化?(映射:映射){
self.init()
}
func映射(映射:映射){

产品嗨,伙计,我已经更新了json响应,请检查,请帮助
["kind": aWareInternalAPI#productsItem, "products":(
{
"additives_count" = 3;
barcode = 12345;
"hazard_count" = 0;
"is_food_or_beverage" = 1;
name = "Water Bottle";
"no_of_users_rated" = 1;
"overall_rating" = "0.0";
"product_key" = "ahdzfmF3YXJlLWJhY2tlbmQtc3RhZ2luZ3IlCxIEVXNlchiAgICgvoOTCQwLEgdQcm9kdWN0GICAgIDE_JAKDA";
rating = 0;
state = "OCR_PROCESSING";
thumbnail = "http://lh3.googleusercontent.com/dMxwgSQB02osZJJex4S57iupaMT9tjDYZaD7mweJUjYmI1KNEcZZe1syBwrRs1GbYdZNrRUtQwRYUwXiAEscGNYH-J9f3gJOXYO1rQ=s150";
updated = 1;
},
{
"additives_count" = 0;
barcode = 53647825898248485;
"hazard_count" = 0;
"is_food_or_beverage" = 1;
"no_of_users_rated" = 0;
"overall_rating" = "0.0";
"product_key" = ahdzfmF3YXJlLWJhY2tlbmQtc3RhZ2luZ3IlCxIEVXNlchiAgICgvoOTCQwLEgdQcm9kdWN0GICAgICumYAJDA;
rating = "";
state = "OCR_PROCESSING";
thumbnail = "http://lh3.googleusercontent.com/0D55ZXkG8Ua5ULDK69Po-IHeDPIfXZHOi7LlLURoc1qZzmNst57xUMQSPzWTW5miSDglc5wKDA4QlvLvnD6aMOqIHcwlj_HY-Hs=s150";
updated = 1;
})]
class Products: Object, Mappable {
    let products: [Product]?

    //Impl. of Mappable protocol
    required convenience init?(map: Map) {
        self.init()
    }

    func mapping(map: Map) {
        products    <- map["products"]
    }
}

class Product: Object, Mappable {
    dynamic var additives_count: String?
    var rating: String?
    var updated: Bool = false;
    var name: String?
    var barcode: String?
    var product_key: String?
    var hazard_count: String?
    var state: String?
    var no_of_users_rated: String?
    var thumbnail: String?
    var overall_rating : String?
    var is_food_or_beverage : Bool = false

    //Impl. of Mappable protocol
    required convenience init?(map: Map) {
        self.init()
    }

    func mapping(map: Map) {
        additives_count    <- map["additives_count"]
        rating <- map["rating"]
        updated <- map["updated"]
        name <- map["name"]
        barcode <- map["barcode"]
        product_key <- map["product_key"]
        hazard_count    <- map["hazard_count"]
        state <- map["state"]
        no_of_users_rated <- map["no_of_users_rated"]
        thumbnail <- map["thumbnail"]
        overall_rating <- map["overall_rating"]
        is_food_or_beverage <- map["is_food_or_beverage"]
    }
}