Swift version: 5.6
Most Swift developers use camel case for naming properties, which means we start with a lowercase letter then capitalize the first letter of second and subsequent words: numberOfUsers
or powerLevel
. On the other hand, many web APIs prefer snake case, written as number_of_users
and power_level
, so if you need to convert camel case to snake case you need to use the keyEncodingStrategy
of JSONEncoder
, like this:
let encoder = JSONEncoder()
encoder.keyEncodingStrategy = .convertToSnakeCase
if let encoded = try? encoder.encode(yourData) {
// continue with encoded data
}
With that set, Swift can convert property names as part of the encoding process, which makes Codable
much easier to use.
A similar property exists on JSONDecoder
, except now it’s called keyDecodingStrategy
. It does the same thing in reverse: specifying .convertFromSnakeCase
will convert names_like_this
into namesLikeThis
.
TAKE YOUR SKILLS TO THE NEXT LEVEL If you like Hacking with Swift, you'll love Hacking with Swift+ – it's my premium service where you can learn advanced Swift and SwiftUI, functional programming, algorithms, and more. Plus it comes with stacks of benefits, including monthly live streams, downloadable projects, a 20% discount on all books, and free gifts!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 8.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.