Ошибка:
JSON, который вы используете, недействителен. Допустимое значение JSON
:
[{"first_name":"Ford","last_name":"Prefect","age":5000},{"first_name":"Zaphod","last_name":"Beeblebrox","age":999},{"first_name":"Arthur","last_name":"Dent","age":42},{"first_name":"Trillian","last_name":"Astra","age":1234}]
Модель:
Используйте Int
в качестве типа данных для age
вместо String
,
struct Wert: Decodable {
let firstName, lastName: String
let age: Int
}
Синтаксический анализ:
1. При синтаксическом анализе используйте [Wert].self
вместо Wert.self
, т.е.
2. Используйте decoder.keyDecodingStrategy = .convertFromSnakeCase
для работы со змеиными (подчеркиванием) клавишами в JSON, т.е.
if let url = URL(string: "https://learnappmaking.com/ex/users.json") {
URLSession.shared.dataTask(with: url) { (data, response, error) in
if let data = data {
do {
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase
let preis = try decoder.decode([Wert].self, from: data)
print(preis)
} catch {
print(error)
}
}
}.resume()
}