Мне удалось очень запутаться в отношении Swift Codeable, struct vs. class и анализа JSON.
Я пытаюсь управлять данными для различных пакетов изображений, из которых может быть несколько пакетовприсвоено данному slate
. Я хочу иметь возможность добавлять дополнительные пакеты изображений к slate
, если он уже существует.
Формат JSON будет выглядеть примерно так:
{
slate: "S1A:,
imageBundles: [
{
timestamp: "2019-10-11_23:00",
fileUrls: [
"files/R0010514.JPG",
"files/R0010515.JPG",
"files/R0010516.JPG"
]
},
{
timestamp: "2019-10-12_02:30",
fileUrls: [
"files/R0010525.JPG",
"files/R0010526.JPG",
"files/R0010527.JPG"
]
}
]
}
Я пытался создать struct
объекты для работы в Swift:
struct ImageBundle: Codable {
var timestamp: String?
var fileUrls: [String]?
}
struct SlateBundle: Codable {
var slate: String?
var imageBundles: [ImageBundle]! = []
}
Это похоже на создание объекта с назначенной информацией, однако я не уверен, как правильно использовать это в коде.
Я не могу создать новый ImageBundle()
и добавить его к mySlateBundle["S1A"]
Или создать новый SlateBundle()
, если я попытаюсь присвоить mySlateBundle["newSlateName"]
Очевидно, что мне не хватает какой-то очень простой процедуры,или более чем вероятно смешивание моего понимания различных типов объектов.
Чтобы попытаться быть более понятным ... Как бы я объявил / назначил struct
объекты для данной структуры JSON:
{
city: "Los Angeles",
neighborhoods: [
{
name: "venice",
streets: [
"Main Street",
"Abbot Kinney",
"Pacific"
]
},
{
name: "Hollywood",
streets: [
"Sunset Blvd",
"La Brea Blvd",
"Highland Ave"
]
}
]
}