我正在尝试解析JSON并将JSON响应值附加到tableview数组中。在响应subcategory
下,我得到了几个对象,但我得到了一些空值。
{
"category": [
{
"id": 0,
"subcategory": [ //Table cell button need to show green color
{
"subcategory_id": 10
}
]
},
{
"id": 0,
"subcategory": null //Table cell button need to show red color
}
]
}
我需要将值附加到数组like : [10, null,....]
中。如果子类别为null,则表示我需要存储null,否则需要存储其值。
应用于单元格后,如果该值为null,则需要更改单元格按钮Image。
我尽力解决了超出范围的问题,但在上述情况下我没有得到很好的结果。
这是我的代码
if indexPath.row < id.count {
cell.accessibilityValue = String(id[indexPath.row]) // If the cell.accessibilityValue not null then need to change cell button image.
}
cell.name_Label.text = name[indexPath.row]
cell.city_Label.text = city[indexPath.row]
从JSON self.id.append(items)
追加数组。我得到输出like [10]
,但实际结果应该是[10,null]
。数组的长度不正确,如果它为null或nil,则我需要将数据为“ null”,因为我按索引获取值,并且每个索引都知道为null或具有值,但必须在其中
答案 0 :(得分:0)
id
应该是optional Int
的数组 subcategory_id
应该是optional Int
var subcategory_id: Int?
var id: [Int?] = []
if let subCat = subcategory_id {
id.append(subCat)
}
else {
id.append(nil) // id=[nil]
}
在cellForAtRow重载中
id
是optional Int
(Int?
)的数组,您必须将其拆开
cell.id_Label.text = id[indexPath.row]!
或
if let i = id[indexPath.row] {
cell.id_Label.text = "\(i)"
}
else {
print("id is nil")
}