"id": 2,
"name": "Технические проблемы",
},
{
"id": 100,
"name": "test2",
"children": [
{
"id": 159,
"name": "Подкатегория",
"children": [
{
"id": 160,
"name": "Ещё подкатегория",
"children": []
}
]
},
}
]
Модель:
struct IssueCategory: Decodable, Identifiable {
var id: Int
var name: String?
var children: [IssueCategory]?
}
Успешно декодируется. Но получается массив элементов верхнего уровня.
Но как мне в итоге сформировать [IssueCategory], в котором будут находиться все элементы(включая вложенные)?
Вопрос как сформировать респонс модель IssueCategory?
Сходу так получилось struct IssueCategory: Decodable, Identifiable { var id: Int var name: String? var children: [IssueCategory]? func getPlainCategories() -> [IssueCategory] { guard let children = children else { return [self] } return CollectionOfOne(self) + children.flatMap { $0.getPlainCategories() } } } let issues = try! JSONDecoder().decode([IssueCategory].self, from: jsonData) let array: [IssueCategory] = issues.flatMap { $0.getPlainCategories() } array
спасибо, попробую
Обсуждают сегодня