Skip to content

Instantly share code, notes, and snippets.

@ArchieR7
Created September 19, 2017 21:44
Show Gist options
  • Save ArchieR7/bee33f4a7820c05012c01047d0723701 to your computer and use it in GitHub Desktop.
Save ArchieR7/bee33f4a7820c05012c01047d0723701 to your computer and use it in GitHub Desktop.
/*
{
"name": "Archie",
"email": "[email protected]",
"status: "Active",
"updated_time": "2017-09-20T00:00:00Z"
}
*/
enum UserStatus: String, Codable {
case active = "Active"
case disable = "Disable:"
}
struct User: Codable {
var name: String
var email: String
var status: UserStatus
var updatedTime: Date
// if keys need to replace by others
enum CodingKeys : String, CodingKey {
case name
case email
case status
case updatedTime = "updated_time"
}
}
// encoder
let encoder = JSONEncoder()
// set date encoding strategy to iso8601
// default is TimeInterval
encoder.dateEncodingStrategy = .iso8601
// user convert to data
let data = try! encoder.encode(user)
// decoder
let decoder = JSONDecoder()
// data convert to user
let user = try! decoder.decode(User.self, from: data)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment