为 JSONEncoder
和 JSONDecoder
提供对 “kebab-case”(而不是仅仅是 “snake_case”)格式的编码键的支持。
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
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
使用 Swift Package Manager
将 Skewer 作为依赖项添加到你的 Package.swift
文件。 更多信息,请参阅 Swift Package Manager 文档。
.package(url: "https://github.com/Fleuronic/Skewer", from: "3.0.0")
Skewer 在 MIT 许可下可用。 请参阅 LICENSE 文件以获取更多信息。