Итак, я работал с вложенным файлом JSON (который я добавил локально в свой проект) в Swift.Я включил часть файла JSON, над которым я работаю, ниже.Данные структурированы следующим образом:
{
"categories": [
{
"categoryName": "Albatrosses",
"exercisesInCategory": [
"Wandering albatross",
"Grey-headed albatross",
"Black-browed albatross",
"Sooty albatross",
"Light-mantled albatross"
]
},
{
"categoryName": "Cormorants",
"exercisesInCategory": [
"Antarctic shag",
"Imperial shag",
"Crozet shag"
]
},
{
"categoryName": "Diving petrels",
"exercisesInCategory": [
"South Georgia diving petrel",
"Common diving petrel"
]
},
{
"categoryName": "Ducks, geese and swans",
"exercisesInCategory": [
"Yellow-billed pintail"
]
}
]
}
Для извлечения данных я создал 2 структуры, которые представляют данные в JSON, чтобы я мог затем извлечь из них значения.Они следующие:
struct Response:Codable{
let categories: [Categories]
}
struct Categories:Codable{
let categoryName : String?
let exercisesInCategory : [String]
}
Имя файла fitnessData.json
, и я пытаюсь извлечь из него данные, используя этот код:
private func parse(){
print("Retrieving JSON Data...")
if let url = Bundle.main.url(forResource: "fitnessData", withExtension: "json") {
do {
let data = try Data(contentsOf: url)
self.response = try JSONDecoder().decode(Response.self, from: data)
if let responseJSON = self.response {
print("The categories are: ", responseJSON.categories[1].categoryName!)
}
} catch {
print(error)
}
}
}
Проблема в том, чтоЯ хотел бы получить ВСЕ значения 'categoryName' из файла JSON и ВСЕ значения 'exercInCategory'.Но до сих пор мне удалось только перейти к определенному элементу в файле JSON и получить этот элемент, т.е.
responseJSON.categories[1].categoryName!
Я бы хотел перебрать файл JSON, чтобы получить все значения «categoryName»например.Однако для этого мне нужно написать что-то вроде этого:
for value in responseJSON.categories[1].categoryName! {
print(value)
}
Где '1' представляет все значения для структуры категорий.Приведенный выше код, очевидно, будет печатать только categoryName второго индекса в массиве категорий в файле JSON.Может ли кто-нибудь указать мне правильное направление?