首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ObjectMapper toJSON() swift

ObjectMapper toJSON() swift
EN

Stack Overflow用户
提问于 2019-04-28 06:35:24
回答 1查看 742关注 0票数 0

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

下面是我正在使用的代码

代码语言:javascript
复制
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没有

EN

回答 1

Stack Overflow用户

发布于 2019-04-28 08:33:51

ObjectMapper将从/转到在下面的mapping(map: Map)方法中使用的对象属性

代码语言:javascript
复制
func mapping(map: Map) {
    reportDisplayId <- map["ReportDisplayID"]   
}

因为reportDisplayId是在mapping(map: Map)方法中映射的唯一属性,所以您只使用这个键值获取JSON。您应该使SowSubCategoryModelSowSubCategoryDetailListModelMappable保持一致,并通过mapping方法映射这些对象,以便只获得所需的JSON。

如果您想保持SowSubCategoryModelSowSubCategoryDetailListModel的映射与问题相同,那么您可以在模型中通过添加sOWSubCategorysOWSubCategoryDetail JSON实现toJSON方法,如下所示,

代码语言:javascript
复制
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
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55887659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档