ObjectMapper toJSON () swift - PullRequest
       8

ObjectMapper toJSON () swift

0 голосов
/ 28 апреля 2019

У меня есть объект, для которого есть некоторые свойства в 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 не

1 Ответ

0 голосов
/ 28 апреля 2019

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 и sOWSubCategoryDetail JSON, как показано ниже,

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
}
...