ios - 解析json并用tableview显示

标签 ios uitableview swift

我是 Swift 新手,不擅长操作 json 和 hash。

这是我的 JSON [用户数组]

[
{"name": "mary", "age": 24, "detail": "i love ..."},
{"name": "mark", "age": 28, "detail": "i love ..."}
]

我想先显示每个用户的姓名,然后显示他们的年龄

如果您点击姓名或年龄,它将显示详细信息

我只知道如何迭代数组并将值放在单元格上。

就像这样,但现在知道如何用字典显示表格单元格

cell.textLabel.text = self.items[indexPath.row]

我如何知道在每个循环中应该使用哪个

func tableView(发票: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

我怎么知道这次我应该使用name,而下次我应该使用age来显示我的单元格?

enter image description here

最佳答案

由于您的原始 JSON 是一个数组,您可以在字典中解析 JSON 元素,然后在您的单元格中使用它。

func parseJSONArray(jsonData: NSData) -> Array<NSDictionary>{
    var error: NSError?
    var usersDictionary = NSJSONSerialization.JSONObjectWithData(jsonData, options: NSJSONReadingOptions.MutableContainers, error: &error) as Array<NSDictionary>
    return usersDictionary
}

然后你可以使用这个 usersDictionary 来获取你的用户信息:

cell.textlabel.text = usersDictionary[indexPath.row].valueForKey("name")

对于关键决策的逻辑,尝试如下:

var index = indexPath.row/2;
var key = indexPath.row%2;

if (key == 0) { //show the name cell
    cell.textlabel.text = usersDictionary[index].valueForKey("name")
} else { //show the age cell
    cell.textlabel.text = "Age " + usersDictionary[index].valueForKey("age")
}

您可以使用单元格字体样式和颜色的类似逻辑。它不是很复杂。只需确保行数是 json 数组大小的两倍(每个键 1 个单元格)以及单元格选择方法的正确逻辑。

关于ios - 解析json并用tableview显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26581988/

相关文章:

ios - 如何获得 MKPolyline 上的等距位置?

ios - ARKit 和 Reality Composer - 如何使用图像坐标锚定场景

ios - 使用表格 View

ios - 如果我想在 cellForRowAtIndexPath 中创建三种相似类型的单元格之一,我该如何设置 "common"属性?

swift - 当iPhone进入后台状态时dispatch_time如何工作?

ios - 由于信号段错误导致命令失败 11 Parse SDK 或 Facebook graph API 疑似罪魁祸首

ios - Quicktype 选项参数处理

iphone - 如何选择包含许多项目的 uitableview 的最后几行

ios - 将 Int 转换为 CMAttachmentMode

ios - 如何为 iOS 10 启用通知?