Skip to content

Commit 2bc5f43

Browse files
committed
Key Strategy
1 parent 0ef6569 commit 2bc5f43

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,27 @@ decoder.intDecodingStrategy = .clamping(roundingRule: .toNearestOrAwayFromZero)
132132
let values = try decoder.decode([Int8].self, from: [10, 20.5, 1000, -Double.infinity])
133133
```
134134

135+
## Key Strategy
136+
137+
Keys can be encoded to snake_case by setting the strategy:
138+
139+
```swift
140+
var encoder = KeyValueEncoder()
141+
encoder.keyEncodingStrategy = .convertToSnakeCase
142+
143+
// ["first_name": "fish", "surname": "chips"]
144+
let dict = try encoder.encode(Person(firstName: "fish", surname: "chips))
145+
```
146+
147+
And decoded from snake_case:
148+
149+
```swift
150+
var decoder = KeyValueDecoder()
151+
decoder.keyDecodingStrategy = .convertFromSnakeCase
152+
153+
let person = try decoder.decode(Person.self, from: dict)
154+
```
155+
135156
## UserDefaults
136157
Encode and decode [`Codable`](https://developer.apple.com/documentation/swift/codable) types with [`UserDefaults`](https://developer.apple.com/documentation/foundation/userdefaults):
137158

0 commit comments

Comments
 (0)