可解析的 (Parsable)

这是一个 Swift 库,提供了一个 Parseable 协议,用于简化模型对象的 JSON 编码和解码。

Build and test

什么是 Parseable?

使用 Parseable 的好处

如何使用 Parseable

  1. 使您的模型遵循 Parseable 协议

    • 定义一个名为 ParseableTypeassociatedtype,它继承自 Codable
    • 根据协议的要求,实现静态方法 decodeFromDataencode
  2. 使用提供的 JSON 转换方法

    • 调用 decodeFromData(data:withDateDecodingStrategy:) 将 JSON 数据解析为您的模型对象。
    • 调用 encode(fromEncodable:withDateDecodingStrategy:) 将您的模型对象转换为 JSON 数据。

可选的 DLog 函数

提供的代码包含一个私有静态函数 DLog,用于调试日志记录。此函数旨在用于调试目的,并且仅在调试版本中启用。您可以根据需要自定义或删除此函数。

使用示例

#import Parsable

// Define a model conforming to Codable
struct SampleErrorModel: Codable {
    var error: String
    var code: Int
}

// Parseable protocol conformance. That's it.
extension SampleErrorModel: Parseable {
    typealias ParseableType = Self
}

let sampleModel = SampleErrorModel(error: "error message text", code: 404)

// Example of decoding JSON data
let jsonData = // Your JSON data here

if let error = SampleErrorModel.decodeFromData(data: jsonData) {
  print("Error code: \(error.code)")
} else {
  print("Error decoding user data")
}

// Example of encoding a model object
if let encodedData = SampleErrorModel.encode(fromEncodable: sampleModel) {
  // Use the encoded data...
} else {
  print("Error encoding user data")
}

这是一个基本示例。您可以自定义模型中 decodeFromDataencode 方法的实现,以处理特定的数据结构和逻辑。

安装

Swift 包管理器

添加到 Package.swiftdependencies 值中。

dependencies: [
    .package(url: "https://github.com/makoni/parsable.git", from: "1.0.0"),
]

这里有一些 文档