Swift version: 5.10
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
.
SPONSORED Alex is the iOS & Mac developer’s ultimate AI assistant. It integrates with Xcode, offering a best-in-class Swift coding agent. Generate modern SwiftUI from images. Fast-apply suggestions from Claude 3.5 Sonnet, o3-mini, and DeepSeek R1. Autofix Swift 6 errors and warnings. And so much more. Start your 7-day free trial today!
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.