使用静态类型的数据结构序列化。 Song 之于 JSON 犹如 Swift 之于 Javascript。
Swift 4.0
添加依赖到 Package.swift
.package(url: "https://github.com/blanu/Song", from: "0.0.0")
或者直接检出
git clone https://github.com/blanu/Song
cd Song
如果直接检出
swift test
测试覆盖了原始类型、Foundation 类型、数组、字典、结构体和类的编码和解码。
您可以在应用程序中使用 Song,就像使用 JSON 编码器一样。
结构体和类必须采用 Codable 协议。 所有字段也必须是 Codable 类型。 大多数原始类型和 Foundation 类型已经采用了这个协议。
struct ExampleStruct: Codable {
let value: String
}
let example = ExampleStruct(value: "example string")
let song = Song()
let result: Data = try? song.encode(ex)
对于这个例子,我们将把它作为 UTF8 字符串打印出来。
NSLog("\(String(bytes: result!, encoding: .utf8)!)")
结果将是以下字符串
let value: ExampleStruct = ExampleStruct(value: "example string")
请注意,打印的字符串与您最初用于实例化结构体的 Swift 代码相同。 这就是 Song 的目的。 它将数据结构序列化为 Swift 代码,并将 Swift 代码解析为数据结构。
请阅读 CONTRIBUTING.md 以了解我们的行为准则以及提交 pull 请求的流程。
使用 SemVer 进行版本控制。 有关可用版本,请参见此存储库上的标签。
本项目采用 GPLv3 许可 - 有关详细信息,请参阅 LICENSE.md 文件
Song 的灵感来自 Enso 以及与 William R. Cook 的对话。