我正在尝试基于具有相同值的对象在tableview单元格中显示JSON数据。
现在,我可以将所有JSON数据显示到单元格行中,但无法排除对象值不同的数据。
我正在使用此设置来获取数据:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// Retrieve cell
let cellIdentifier: String = "takesTableViewCell"
let myCell: TakesTableViewCell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier)! as! TakesTableViewCell
// Get the location to be shown
let item: LocationModel = feedItems[indexPath.row] as! LocationModel
// Get references to labels of cell
myCell.mainNameLabel.text = item.title
myCell.mainTakeLabel.text = item.take
return myCell
}
这是我的示例JSON数据
[
{
"id":"1",
"title":"Great Title 1",
"take":"Testing !!!",
"movieid":"299534"
},
{
"id":"2",
"title":"Great Title 2",
"take":"Testing 1,2,3",
"movieid":"299666"
},
{
"id":"3",
"title":"Great Title 3",
"take":"Testing 1,2,3",
"movieid":"299534"
}
]
我只想显示具有相同“电影”的结果,如下所示:
标题:大标题1
参加:测试!!!
标题:大标题3
接受:测试1,2,3
答案 0 :(得分:2)
在后端,您只想返回影片编号数量> 1的记录
SELECT *
FROM movie_table
GROUP BY movie_id
HAVING COUNT(movie_id) > 1;
答案 1 :(得分:0)
首先将对象数组转换为字典。
var movieDict: [String:[[String:String]]] = []
for movObj in jsonData {
guard let key = movObj["movieid"] else { continue }
var objArr = movieDict[key] ?? []
objArr.append(movObj)
movieDict[key] = objArr
}
然后,您可以浏览一下哪些对象具有多个具有相同movieid的对象。
for (k, v) in movieDict {
if v.count > 0 {
// either track the keys, or tableData = v
}
}