intsig171 / SmartCodable

SmartCodable is a data parsing library based on Codable. It is simple to use, with robust compatibility being one of its main features. SmartCodable 是基于Codable实现的数据解析库。简单易用,强悍的兼容性是SmartCodable的主要特点。 表层API和功能几乎和HandyJSON一致,支持快速的迁移。
https://smart-codable.vercel.app
MIT License
417 stars 43 forks source link

局部的值解析策略支持SmartDataTransformer #18

Closed TttGggVv closed 6 months ago

TttGggVv commented 6 months ago

局部的值解析策略 struct SmartModel: SmartCodable { var date1: Date? var date2: Date? var url: URL?

// value的解析策略
static func mappingForValue() -> [SmartValueTransformer]? {
    let format = DateFormatter()
    format.dateFormat = "yyyy-MM-dd"
    return [
        CodingKeys.url <--- SmartURLTransformer(prefix: "https://"),
        CodingKeys.date2 <--- SmartDateTransformer(),
        CodingKeys.date1 <--- SmartDateFormatTransformer(format)
    ]
}

}

intsig171 commented 6 months ago

目前我没有Data的使用场景。 你可以仿照着写一个。 遵循协议,实现两个协议方法。 public protocol ValueTransformable { associatedtype Object associatedtype JSON

/// transform from ’json‘ to ’object‘
func transformFromJSON(_ value: Any?) -> Object?

/// transform to ‘json’ from ‘object’
func transformToJSON(_ value: Object?) -> JSON?

} 。 你可以也可以提供一下使用场景。 我这边考虑一下,加进来。

TttGggVv commented 6 months ago

HandyJson支持的,建议支持一下,是有场景的

TttGggVv commented 6 months ago

蓝牙传输场景

intsig171 commented 6 months ago

我的意思是: 数据是base64字符串么? 属性是Data类型?

TttGggVv commented 6 months ago

Data

intsig171 commented 6 months ago

要不你加一下QQ群: 865036731,沟通吧。 因为Data类型对应的,接口数据有多种格式,我需要确认一下。

intsig171 commented 6 months ago

V3.4.0 已支持。 请查看SmartDataTransformer