使用JSON数组填充Swift数组

时间:2016-06-24 09:17:45

标签: swift

Swift相当新,并试图弄清楚如何使用我的JSON数组的值填充Swift数组。

在我的课程中,我定义了以下值来保存图表的x轴值。

var xVal: [String]!

下面我尝试踢出静态数组并将其替换为JSON文件中的数据。 xVal尝试访问JSON文件,yVal是静态的,并且运行正常。 xVal发出以下错误:Cannot subscript a value of type 'JSON' with an index of type 'String'

xVal = dataStatistics[indexPath.section]["xval"]
let yVal = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0, 4.0, 18.0, 2.0, 4.0, 5.0, 4.0]

setChart(xVal, values: yVal)

这是JSON文件的结构:

{
  "statistics": [
   {
        "title": "Title of chart 1",
        "description": "Chart one contains data of the last year",
        "xval": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
        "yval": [20.0, 4.0, 6.0, 3.0, 12.0, 16.0, 4.0, 18.0, 2.0, 4.0, 5.0, 4.0]
   }
   ]
}

2 个答案:

答案 0 :(得分:0)

根据输入的json数据,我假设swiftyjson解析statistics到另一个json类型。所以你可以尝试这个

let stats = dataStatistics[indexPath.section].dictionaryValue
xval = stats["xval"]

看看是否有效

答案 1 :(得分:0)

不知道是否有更好的方法,但这段代码应该适合你:

        var xVal: [String] = []
        let stats = dataStatistics[indexPath.row]["xval"]
        if let array = stats.array {
            for json in array {
                xVal.append(json.string!)
            }
            print(xVal)
        }