Simplify Package.swift
Provides support for “kebab-case” formatted (as opposed to just “snake_case” formatted) coding keys for JSONEncoder and JSONDecoder.
JSONEncoder
JSONDecoder
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
Using the Swift Package Manager
Add Skewer as a dependency to your Package.swift file. For more information, see the Swift Package Manager documentation.
Package.swift
.package(url: "https://github.com/Fleuronic/Skewer", from: "3.0.0")
Skewer is available under the MIT license. See the LICENSE file for more info.
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
Skewer 🍡
Provides support for “kebab-case” formatted (as opposed to just “snake_case” formatted) coding keys for
JSONEncoder
andJSONDecoder
.Encoding
Decoding
Installation
Using the Swift Package Manager
Add Skewer as a dependency to your
Package.swift
file. For more information, see the Swift Package Manager documentation.License
Skewer is available under the MIT license. See the LICENSE file for more info.