В приведенном ниже ответе JSON ,
[{"name":"Isaac","salary":"2000"},{"name":"David","salary":"7000"}]
значение "salary"
равно String
, а не Int
.
Итак, в вашем struct Iphoneinfo
, salary
должен быть тип String
вместо Int
, то есть
struct Iphoneinfo: Codable {
let name : String
let salary : String
}
И в случае, если вы хотите использовать Int
для salary
, вы должны либо написать пользовательский init(from:)
, либо изменить формат JSON.
Редактировать:
При использовании того же JSON, который вы указали, вотрезультат, который вы получите после синтаксического анализа с использованием struct Iphoneinfo
let str = """
[{"name":"Isaac","salary":"2000"},{"name":"David","salary":"7000"}]
"""
if let data = str.data(using: .utf8) {
do {
let response = try JSONDecoder().decode([Iphoneinfo].self, from: data)
print(response) //[Iphoneinfo(name: "Isaac", salary: "2000"), Iphoneinfo(name: "David", salary: "7000")]
} catch {
print(error)
}
}
Если вы все еще не решите проблему, должна быть некоторая проблема с API или полученным ответом.