Skip to content

Instantly share code, notes, and snippets.

@antoniopantaleo
Last active May 20, 2022 14:21
Show Gist options
  • Save antoniopantaleo/f42dd3c44fb7b2af170b4dae26c8a18f to your computer and use it in GitHub Desktop.
Save antoniopantaleo/f42dd3c44fb7b2af170b4dae26c8a18f to your computer and use it in GitHub Desktop.
Decode a generic decodable object
public extension JSONDecoder {
static func decode<T:Decodable>(from data: Data) -> T? {
do { return try JSONDecoder().decode(T.self, from: data) as T }
catch { return nil }
}
}
@antoniopantaleo
Copy link
Author

Usage

let optionalPerson : Person? = JSONDecoder.decode(from: encodedPersonData)
guard let doggo : Dog = JSONDecoder.decode(from: encodedDogData) else {return}
print(doggo.bark())

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment