Я хочу декодировать файл JSON в объекты модели. К сожалению, это не работает правильно. Поэтому я не получаю ошибок, но «результат декодирования» не соответствует моим ожиданиям. У меня есть следующий файл JSON, и я хочу декодировать его в показанных структурах. Я урезал файл JSON. Почему я получаю только одно «изображение слайдера» вместо 5 (свойство imageSlider содержит массив только с первым изображением / элементом). Чего мне не хватает?
JSON:
[{"imageSlider" : [{
"image" : [{
"imageId" : "1",
"imageName" : "germany1",
"imageBigName" : "germany1_BIG",
"imageRights" : "Peter"
}],
"image" : [{
"imageId" : "2",
"imageName" : "germany2",
"imageBigName" : "germany2_BIG",
"imageRights" : "Peter"
}],
"image" : [{
"imageId" : "3",
"imageName" : "germany3",
"imageBigName" : "germany3_BIG",
"imageRights" : "Peter"
}],
"image" : [{
"imageId" : "4",
"imageName" : "germany4",
"imageBigName" : "germany4_BIG",
"imageRights" : "Peter"
}],
"image" : [{
"imageId" : "5",
"imageName" : "germany5",
"imageBigName" : "germany5_BIG",
"imageRights" : "Peter"
}]
}]
}]
Swift:
struct CountryModel : Decodable, Equatable {
var countryName : String
var inhabitants : String
var capital : String
var currency : String
var imageName : String
var imageSlider: [ImagesSlider]
}
struct ImagesSlider : Decodable, Equatable {
var image: [Image]
}
struct Image : Decodable, Equatable {
var imageId: String
var imageName: String
var imageBigName: String
var imageRights: String
}
Расшифровка:
func loadData() -> [CountryModel] {
var data: Data
guard let file = Bundle.main.url(forResource: "data", withExtension: "json") else {
fatalError("Error")
}
data = try! Data(contentsOf: file)
let decoder = JSONDecoder()
return try! decoder.decode([CountryModel].self, from: data)
}
Спасибо за вашу помощь ...
Редактировать: Мой вопрос не решен связанным вопросом ...