Skewer 🍡

Release License Issues Downloads

JSONEncoderJSONDecoder 提供对 “kebab-case”(而不是仅仅是 “snake_case”)格式的编码键的支持。

编码 (Encoding)

struct Website: Encodable {
    let homepageURLString: String
}

let encoder = JSONEncoder()
encoder.keyEncodingStrategy = .convertToKebabCase

let website = Website(homepageURLString: "http://www.apple.com")
let data = try! encoder.encode(website)
let json = try! JSONSerialization.jsonObject(with: data, options: []) as! [String: Any]
let convertedKey = json.keys.first!
// homepage-url-string

解码 (Decoding)

struct App: Decodable {
    let downloadCount: Int
}

let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromKebabCase

let json = ["download-count": 999]
let data = try! JSONSerialization.data(withJSONObject: json, options: [])
let app = try! decoder.decode(App.self, from: data)
let downloadCount = app.downloadCount
// 999

安装 (Installation)

使用 Swift Package Manager

将 Skewer 作为依赖项添加到你的 Package.swift 文件。 更多信息,请参阅 Swift Package Manager 文档

.package(url: "https://github.com/Fleuronic/Skewer", from: "3.0.0")

许可 (License)

Skewer 在 MIT 许可下可用。 请参阅 LICENSE 文件以获取更多信息。