Releases: iAmMccc/SmartCodable
Releases · iAmMccc/SmartCodable
V6.0.1
🚀 v6.0.1(Release Notes)
✅ 主要更新
🟢 新增:SmartCompact 命名空间(Array / Dictionary 宽容解析)
新增 SmartCompact 命名空间,用于组织数组/字典的容错解析 Property Wrapper:
@SmartCompact.Array:对数组进行宽容解析,解析失败的元素会被自动跳过。
@SmartCompact.Dictionary:对字典进行宽容解析,解析失败的键值对会被自动跳过。
示例:
struct Model: Decodable {
@SmartCompact.Array
var ages: [Int]
@SmartCompact.Dictionary
var info: [String: Any]
}
🟡 优化:SmartCompact 设计与使用体验
统一命名空间,API 更清晰
避免 SmartCompact 误用为“万能 wrapper”
使数组/字典的宽容解析逻辑更加可控、可维护
V6.0.0
V5.0.2
V4.4.0
优化@SmartFlat的encode实现
4.3.8 V4.3.8
V4.3.0: 日志系统大升级
- 优化日志性能,减少遍历。
- 优化属性日志的信息表达。
- 支持日志的导出,如有需求可以上传服务器。
- 优化日志格式:unkeyedContainer的解析格式化;格式的优化。
================================ [Smart Sentinel] ================================
Array<SomeModel> 👈🏻 👀
╆━ Index 0
┆┄ a: Expected to decode 'Int' but found ‘String’ instead.
┆┄ b: Expected to decode 'Int' but found ’Array‘ instead.
┆┄ c: No value associated with key.
╆━ sub: SubModel
┆┄ sub_a: No value associated with key.
┆┄ sub_b: No value associated with key.
┆┄ sub_c: No value associated with key.
╆━ sub2s: [SubTwoModel]
╆━ Index 0
┆┄ sub2_a: No value associated with key.
┆┄ sub2_b: No value associated with key.
┆┄ sub2_c: No value associated with key.
╆━ Index 1
┆┄ sub2_a: Expected to decode 'Int' but found ’Array‘ instead.
╆━ Index 1
┆┄ a: No value associated with key.
┆┄ b: Expected to decode 'Int' but found ‘String’ instead.
┆┄ c: Expected to decode 'Int' but found ’Array‘ instead.
╆━ sub: SubModel
┆┄ sub_a: Expected to decode 'Int' but found ‘String’ instead.
╆━ sub2s: [SubTwoModel]
╆━ Index 0
┆┄ sub2_a: Expected to decode 'Int' but found ‘String’ instead.
╆━ Index 1
┆┄ sub2_a: Expected to decode 'Int' but found 'null' instead.
====================================================================================
V4.2.6更新说明
【优化】优化继承关系下的父类属性的解析。
【新增】SmartAny支持修饰Model类型。
优化KeyMap映射关系
4.2.5 优化key的自定义映射规则
V4.2.3-BugFix 发布公告
【BugFix】修改非基本数据类型的自定义解析的失效问题。
【BugFix】修复key的映射关系中,当前值为null的判断错误问题。
【新功能】提供FastTransformer快捷ValueTransformer
CodingKeys.name <--- FastTransformer<String, String>(fromJSON: { json in
"abc"
},toJSON: { object in
"123"
})
V4.1.12 发布公告
- 【新功能】支持Combine,允许 @ Published修饰的属性解析。
- 【新功能】支持@igonreKey修饰的属性在encode时,不出现在json中(屏蔽这个属性key)
- 【新功能】支持encode时候的options,同decode的options使用。
- 【优化】Data类型在decode和encode时,只能使用base64解析.