Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.
import Foundation
extension JSONDecoder.KeyDecodingStrategy {
static var upperToLowerCamelCase: JSONDecoder.KeyDecodingStrategy {
return .custom { codingKeys in
var key = JSONAnyCodingKey(codingKeys.last!)
if let firstChar = key.stringValue.first {
key.stringValue.replaceSubrange(
...key.stringValue.startIndex, with: String(firstChar).lowercased()
)
}
return key
struct JSONAnyCodingKey : CodingKey {
var stringValue: String
var intValue: Int?
init(_ base: CodingKey) {
self.init(stringValue: base.stringValue, intValue: base.intValue)
init(stringValue: String) {
self.stringValue = stringValue
init(intValue: Int) {
self.stringValue = "\(intValue)"
self.intValue = intValue
init(stringValue: String, intValue: Int?) {