Swift Decodable
Anonymous contributor
Published Oct 3, 2023
Contribute to Docs
The Decodable protocol is used to easily decode JSON or similar data formats like XML. The required initializer is init(from: Decoder) which creates a new instance by decoding from the given decoder. The Decodable protocol is often used with the JSONDecoder class. Decodable should be used when there’s only a need to read data, when reading and writing are required the Codable protocol should be implemented.
Syntax
Create a structure to represent the data to decode, followed by Decodable using the standard syntax of a Swift protocol.
struct DataName: Decodable {
// Properties that conform to Decodable
}
Example
In the example below, a User struct is defined and the Decodable protocol is used with JSONDecoder to convert stored JSON into a data object.
import Foundationstruct User: Decodable {var name: Stringvar age: Intvar location: String}let userJson = """{"name": "Charlotte Lucas","age": 27,"location": "England"}"""let userData = Data(userJson.utf8)let decoder = JSONDecoder()let user = try decoder.decode(User.self, from: userData)print(user.name)
This will result in the following output:
Charlotte Lucas
All contributors
- Anonymous contributor
Contribute to Docs
- Learn more about how to get involved.
- Edit this page on GitHub to fix an error or make an improvement.
- Submit feedback to let us know how we can improve Docs.
Learn Swift on Codecademy
- Learn how to build iOS applications with Swift and SwiftUI and publish them to Apples' App Store.
- Includes 7 Courses
- With Certificate
- Beginner Friendly.13 hours
- A powerful programming language developed by Apple for iOS, macOS, and more.
- Beginner Friendly.12 hours