ObjectMapper toJSON()swift

问题描述 投票:0回答:1

我有一个init func中有一些属性的对象,在将数据从JSON解析为对象时,它做得很好但是在将Object转换为JSON时,我无法找到在JSON中转换该数据的方法

以下是我正在使用的代码

var sOWSubCategory: SowSubCategoryModel?
var reportDisplayId : String?

required init?(map: Map){
        sOWSubCategory = SowSubCategoryModel(sOWSubCategoryID: map.JSON["SOWSubCategoryID"] as? Int, sOWSubCategoryNameAr: map.JSON["SOWSubCategoryNameAr"] as? String, sOWSubCategoryNameEn: map.JSON["SOWSubCategoryNameEn"] as? String)
        sOWSubCategoryDetail = SowSubCategoryDetailListModel(sOWSubCategoryDetailID: map.JSON["SOWSubCategoryDetailID"] as? Int64, sOWSubCategoryDetailAr: map.JSON["SOWSubCategoryDetailNameAr"] as? String, sOWSubCategoryDetailEn: map.JSON["SOWSubCategoryDetailNameEn"] as? String)
    }
func mapping(map: Map) {
    reportDisplayId <- map["ReportDisplayID"]   
}

reportDisplayId正在转换为JSON,但sOWSubCategory和sOWSubCategoryDe​​tail不是

swift xcode objectmapper
1个回答
0
投票

ObjectMappermap从/向下面的mapping(map: Map)方法中使用的对象属性

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

因为reportDisplayId是唯一一个用mapping(map: Map)方法映射的属性,所以你只得到JSON这个键值。您应该将SowSubCategoryModelSowSubCategoryDetailListModel符合Mappable并通过mapping方法映射这些对象,以便您获得所需的JSON。


如果你想保持SowSubCategoryModelSowSubCategoryDetailListModel的映射相同,那么你可以通过添加toJSONsOWSubCategory JSON在你的模型中实现sOWSubCategoryDetail方法,如下所示,

func toJSON() -> [String : Any] {
    var finalJSON = self.toJSON()


    var sOWSubCategory = sOWSubCategory.toJSON()
    var sOWSubCategoryDetail = sOWSubCategoryDetail.toJSON()

    sOWSubCategory.forEach {
        finalJSON[$0.0] = $0.1
    }

    sOWSubCategoryDetail.forEach {
        finalJSON[$0.0] = $0.1
    }

    return finalJSON
}
© www.soinside.com 2019 - 2024. All rights reserved.