Я пытаюсь использовать decodable на самом базовом уровне, чтобы узнать, как это сделать. Я попытался настроить decodable для какого-то очень простого анализа JSON и продолжаю получать ошибку, которую я не понимаю, как исправить:
Неустранимая ошибка: 'попробуй!' В выражении неожиданно возникла ошибка: Swift.DecodingError.keyNotFound (CodingKeys (stringValue: "firstName", intValue: nil), Swift.DecodingError.Context (codingPath: [], debugDescription: "Нет значения, связанного с ключом CodingKeys (stringValue: \") firstName \ ", intValue: nil) (\" firstName \ ").", underError: nil)): file /BuildRoot/Library/Caches/com.apple.xbs/Sources/swiftlang_Fall2018/swiftlang_Fall2018-1000.11.42/src/ swift / stdlib / public / core / ErrorType.swift, строка 184
Это мой код, который я поместил в Playgrounds:
import UIKit
struct Customer : Decodable {
var firstName :String
var lastName :String
var age :Int
}
let json = """
{
"firstname" : "John",
"lastName" : "Doe",
"age" : 34
}
""".data(using: .utf8)!
let customer = try! JSONDecoder().decode(Customer.self, from: json)
print(customer)
Когда я печатаю (внизу кода), я ожидаю увидеть:
Customer(firstName: "John", lastName: "Doe", age: 34).
Но вместо этого все, что я получаю, это ошибка выше. Не могли бы вы объяснить мне, что я делаю неправильно или чего мне не хватает?