Как исправить ошибку Decodable, сказав, что ключ не найден? - PullRequest
0 голосов
/ 13 января 2019

Я пытаюсь использовать 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). 

Но вместо этого все, что я получаю, это ошибка выше. Не могли бы вы объяснить мне, что я делаю неправильно или чего мне не хватает?

...