ios - 将密码学与 ObjectMapper 结合使用

标签 ios json swift objectmapper

我有一个正在使用 ObjectMapper 进行映射的类。在过去,映射工作正常,但项目架构的变化使得 web 服务将 Double 字段返回到具有加密值的 String

是否可以在映射期间解密并将 web 服务字段转换为我的类变量?

这就是我今天拥有的:

class PosicaoConsolidada: Mappable {
    var portifolioBalance: Double!
    var families: [Family]!

    required init?(map: Map) {}

    public func mapping(map: Map) {
        portifolioBalance <- map["pointsBalance"]
        families <- map["fam"]
    }
}

这是我想做的:

class PosicaoConsolidada: Mappable {
    var portifolioBalance: Double!
    var families: [Family]!

    required init?(map: Map) {}

    public func mapping(map: Map) {
        portifolioBalance <- Double(Decryptor.decrypt(map["pointsBalance"]))
        families <- map["fam"]
    }
}

最佳答案

有几种方法可以完成数据解密。 ObjectMapper 提供协议(protocol) TransformType 来处理映射时的数据转换 (reference)。

变形金刚:

import ObjectMapper

class PointsTransform: TransformType {
    typealias Object = Double
    typealias JSON = String

    func transformFromJSON(_ value: Any?) -> Object? {
        guard let encoded = value as? String
            else { return nil }

        // TODO: Replace with decoding logic
        return 239_584.938
    }

    func transformToJSON(_ value: Object?) -> JSON? {
        guard let decoded = value
            else { return nil }

        return "\(decoded)"
    }
}


型号:

class PosicaoConsolidada: Mappable {
    var portifolioBalance: Double!
    var families: [Family]!

    required init?(map: Map) {}

    public func mapping(map: Map) {
        portifolioBalance <- (map["pointsBalance"], PointsTransform())
        families <- map["fam"]
    }

}

关于ios - 将密码学与 ObjectMapper 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46042797/

相关文章:

ios - 应用内购买 - EXC_BAD_ACCESS

iOS 使用 CAEmitterLayer 创建落叶动画

javascript - 如何使用具有关联数组的 API 填写表单?

JAVA:递归方法是检查 json 是否包含具有特定数据值的特定键的最佳方法吗?

java - Spring Batch - 从 Reader 和 JSON 解析中删除某些类型的行

ios - swift 在 Iphone 上的屏幕截图只有白色背景

ios - Xamarin 无法在 iPhone 模拟器上运行 iOS 应用程序 - 不支持 386 架构

ios - IOS 屏幕截图尺寸不合适

swift - 在Swift中旋转NSImage

ios - 是否可以只构建一次 Pod?