Chapters

Hide chapters

Swift Cookbook

Live Edition · Multiplatform · Swift · Editor agnostic

Decoding Arrays in Swift
Written by Team Kodeco

When decoding arrays in Swift, you are converting a JSON-style array data structure into Swift objects.

To decode an array, you use the decode method of the JSONDecoder class, passing in the type of the array as a generic parameter. For example, Consider this JSON data:

[
  {
    "make":"Tesla",
    "model":"Model S",
    "year":2020,
    "color":"Red"
  },
  {
    "make":"Toyota",
    "model":"Camry",
    "year":2019,
    "color":"Silver"
  }
]

Here’s the struct that you’ll use to decode the data:

import Foundation

struct Car: Codable {
  let make: String
  let model: String
  let year: Int
  let color: String
}

And here’s the code to decode the data:

let jsonData = """
[
  {
    "make": "Tesla",
    "model": "Model S",
    "year": 2020,
    "color": "Red"
  },
  {
    "make": "Toyota",
    "model": "Camry",
    "year": 2019,
    "color": "Silver"
  }
]
""".data(using: .utf8)!

let decoder = JSONDecoder()
let cars = try decoder.decode([Car].self, from: jsonData)
print(cars)
// Output: [Car(make: "Tesla", model: "Model S", year: 2020, color: "Red"),
//          Car(make: "Toyota", model: "Camry", year: 2019, color: "Silver")]
© 2024 Kodeco Inc.