FlexiJSONCoder 是一个轻量级、灵活且易于使用的库,用于将 JSON 数据解码为 Swift 类型,并提供类型强制转换以及回退支持。它允许您无缝处理来自 JSON 响应的不同数据类型,并自动将它们转换为模型中期望的类型。
当处理 API 响应可能包含单个字段的多种类型(例如,String
、Int
、Float
、Double
等)时,此库尤其有用,从而更容易处理不一致的数据结构。
版本 0.0.1:此版本支持 String
、Int
、Float
、Double
和 Bool
的强制转换。
FlexiJSONCoder 可通过 Swift Package Manager 获取
File > Swift Packages > Add Package Dependency...
https://github.com/Forgwhiz/FlexiJSONCoder.git
将以下行添加到您的 Podfile
pod 'FlexiJSONCoder', '~> 0.0.1'
然后运行
pod install
或
pod update
库的用法很简单,可以在下面提供的示例中看到。以下是如何在您的 Swift 模型中使用 FlexiJSONCoder
import FlexiJSONCoder
struct WelcomeModel: Codable {
let id: String?
let title: String
let type: Int?
let category: Float?
}
let jsonData = """
{
"id": "123",
"title": "Welcome",
"category": "45.67",
"isActive": "true",
}
""".data(using: .utf8)!
do {
let jsonData = try JSONSerialization.data(withJSONObject: dictionary, options: [.fragmentsAllowed])
let decodedModel = try FlexiJSONCoder().decode(WelcomeModel.self, from: jsonData)
print(decodedModel) // Outputs: WelcomeModel(id: "123", title: "Welcome", type: 0, category: 45.67, isActive: true)
} catch {
print("Decoding failed: \(error)")
}
虽然基本功能可以开箱即用地用于 String
、Int
、Float
、Double
和 Bool
,但您可以在未来根据需要扩展功能。FlexiJSONCoder 的构建考虑了可扩展性。
命令 | 描述 |
---|---|
String |
可以从 String 、Int 、Float 、Double 转换 |
Int |
可以从 String 、Float 、Double 转换 |
Float |
可以从 String 、Int 、Double 转换 |
Double |
可以从 String 、Int 、Float 转换 |
Bool |
可以从 String ("true"/"false") 或 Int (1 代表 true ,0 代表 false ) 转换 |
您可以扩展库以支持其他类型(例如 Date
、URL
等)
FlexiJSONCoder 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。