swift decode json code example

Example 1: swift parse json

let string = #"{"name": "watashi", "number": 42, "pi": 3.141592, "array": [2, 3, 5, 7, 11, 13]}"#

let data = string.data(using: .utf8)!
let object = try! JSONSerialization.jsonObject(with: data, options: [])

let jsonObject = object as! [String: Any]

let nameField   = jsonObject["name"]    as? String
let numberField = jsonObject["number"]  as? Int
let piField     = jsonObject["pi"]      as? Double
let arrayField  = jsonObject["array"]   as? [Any]

print("The name argument is \(nameField)")
print("The number is \(numberField)")
print("The value of pi is \(piField)")
print("the array value is \(arrayField)")

Example 2: JSONDecoder

struct GroceryProduct: Codable {
    var name: String
    var points: Int
    var description: String?
}

let json = """
{
    "name": "Durian",
    "points": 600,
    "description": "A fruit with a distinctive scent."
}
""".data(using: .utf8)!

let decoder = JSONDecoder()
let product = try decoder.decode(GroceryProduct.self, from: json)

print(product.name) // Prints "Durian"