我有一个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和sOWSubCategoryDetail不是
ObjectMapper
将map
从/向下面的mapping(map: Map)
方法中使用的对象属性
func mapping(map: Map) {
reportDisplayId <- map["ReportDisplayID"]
}
因为reportDisplayId
是唯一一个用mapping(map: Map)
方法映射的属性,所以你只得到JSON
这个键值。您应该将SowSubCategoryModel
和SowSubCategoryDetailListModel
符合Mappable
并通过mapping
方法映射这些对象,以便您获得所需的JSON。
如果你想保持SowSubCategoryModel
和SowSubCategoryDetailListModel
的映射相同,那么你可以通过添加toJSON
和sOWSubCategory
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
}