У меня есть данные json, и я могу проанализировать первую часть, которая называется nav и name, однако мне нужно проанализировать массив children
в табличное представление.
{
"nav": [
{
"name": "Home",
"navigationName": "Home",
"icon": null,
"navigation": {
"URI": null,
"type": "CUSTOM",
"target": "home",
"depth": null,
"data": null,
"filters": {},
"urlStructure": {
"title": null,
"isFeatured": false,
"isCampaign": false
}
},
"styles": []
},
{
"name": "New In",
"navigationName": "New In",
"icon": null,
"navigation": {
"URI": null,
"type": "NO_LINK",
"target": "",
"depth": null,
"data": null,
"filters": {},
"urlStructure": {
"title": null,
"isFeatured": false,
"isCampaign": false
}
},
"styles": [
"linkNewin"
],
"children": [
{
"name": "New In Mens",
"navigationName": "New In Mens",
"icon": null,
"navigation": {
"URI": "/men?facet:new=latest&sort=latest",
"type": "CATEGORY",
"target": "men",
"depth": null,
"data": null,
"filters": {
"facet:new": "latest",
"sort": "latest"
},
"urlStructure": {
"title": null,
"isFeatured": false,
"isCampaign": false
}
},
"styles": [
"linkNewin"
]
},
Это данные json,Я проанализировал и заполнил первое имя в массиве nav, но не могу сделать это для массива Children.
Я уже создал эту модель данных:
struct Menu: Codable {
var nav = [Menus]()
}
struct Menus: Codable {
var name: String
var children: ChildrensNames
}
struct ChildrensNames: Codable {
var name: String
}
У кого-нибудь есть идеи?
У меня работают структуры, поэтому при добавлении точки останова вЯ могу видеть имена детей, однако я не знаю, как получить к ним доступ и добавить их во второй раздел. Ниже приведено мое табличное представление
extension MenuViewController: UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section == 0{
return self.menu?.nav.count ?? 0
} else if section == 1 {
return self.menuItems?.children?.count ?? 0
} else {
return 2
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCell(withIdentifier: "cell")
if cell == nil {
cell = UITableViewCell.init(style: .value1, reuseIdentifier: "cell")
}
let navItem = self.menu?.nav[indexPath.row].name
let childItem = self.menu?.nav[indexPath.row].children
switch indexPath.section {
case 0:
cell?.textLabel?.text = navItem
break
case 1:
// cell?.textLabel?.text =
break
default:
break
}
cell?.accessoryView = UIImageView(image: UIImage(named: "icons8-chevron-right-50"))
return cell!
}
}