185 похожих чатов

Подскажите. Декодирую данные такой структуры [ {

"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], в котором будут находиться все элементы(включая вложенные)?

3 ответов

23 просмотра

Вопрос как сформировать респонс модель 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

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта