Swift从JSON创建tableView

时间:2016-07-01 23:30:58

标签: arrays json swift

我现在正在为iOS开发新增功能。我想创建一个显示我的数组的tableviews的应用程序。我在我的服务器上的txt文件中保存JSON数据。我想通过Alamofire接收它们并填充我的tableviewcells。目前我可以做到。有很多关于它的指南。但是当我点击那个单元格时,我想创建新表。例如,假设这是我的Json数据;

   {
"fruits": [
    {
        "Vitamin": "Vitamin C",
        "Name": "Apple",
    }
    {
        "Vitamin": "Vitamin B",
        "Name": "Banana",
    }        {
        "Vitamin": "Vitamin D",
        "Name": "Watermelon",
    }        {
        "Vitamin": "Vitamin C",
        "Name": "Orange",
    }
    {
        "Vitamin": "Vitamin C",
        "Name": "Mandarin",
    }
] }

有了这个json数据,我只想创建3个tableviewcells,它们是维生素C,维生素B和维生素D.当我想点击维生素C细胞时,我想看到新的tableview,其中包含Apple,Orange,Mandarin。

那我该怎么做呢?我想在故事板上我需要为这些创建多个控制器和多个swift文件?我应该解析Json数据并将它们放在不同的数组中吗?我对所有错过的建议或指南持开放态度。谢谢大家的时间

1 个答案:

答案 0 :(得分:0)

我会创建一个对象并在您使用Alamofire读取JSON时创建该对象(使用类似SwiftyJSON的库来获取JSON中的简单值)

但你应该稍微改变你的json,比如:

newArray

所以维生素C是你的关键" " Apple"," Orange"和"普通话"你是数组值。

现在你应该创建一个对象,比如:

"fruits": [
{
    "Vitamin": "Vitamin C",
    "Fruits": ["Apple", "Orange", "Mandarin"]
}

现在,您可以在从JSON接收值时添加一些水果对象。在你的第一个TableViewController上,只需显示fruits中的值:

class fruits {
   var vitamin: String!
   var inFruits: [String]!
}

你应该将inFruits字符串数组传递给你的下一个ViewController,如下所示:

Sending data with Segue with Swift