0

我正在通过首先尝试一些简单的事情来评估 swiftyJSON,然后想知道这个循环有什么问题。

这是示例数据。

{
    "dataplot2d": [
        [0.25,2.3 ],
        [-2.5,8.09 ],
        [5.3145,20.205]
    ]
}

这是将其读入两个单独数组的代码

var x:[Float] = []
var y:[Float] = []
var i:Int = 0
var t:Int = 0

var jsonArr = json["dataplot2d"].arrayValue

for ( i=0; i<jsonArr.count; i++ )//number of data points
{
    println("i \(i) t \(t) \(jsonArr[i][t])")
    x.append(jsonArr[i][0].array)
    y.append(jsonArr[i][1].array)
}

错误是 Could not find member 'array'??

array定义为https://github.com/SwiftyJSON/SwiftyJSONarrayValue

//Non-optional [JSON]
public var arrayValue: [JSON] {
    get {
        return self.array ?? []
    }
}

我错过了什么?

如果没有 swiftyJSON,这可能会更干净?

4

2 回答 2

1

注意:我正在将我的评论转换为答案,以便我可以发布代码。

在您的代码中,jsonArr您的第一级数组jsonArr[i]是数组,浮点数组也是如此,并且jsonArr[i][0]是浮点数,而不是数组。这就是混乱的根源。:)

至于代码的简单性,这里的循环与您的循环相同,但语法稍微“更快捷”(我不得不稍微调整代码以使其在 Playground 中工作,但它不会改变我们的任何事情) :

var x:[Float] = []
var y:[Float] = []

let jsonArr: [[Float]] = [[0.25,2.3 ],[-2.5,8.09 ],[5.3145,20.205]]

for floatArray in jsonArr {
  x.append(floatArray[0])  // In your case, floatArray[0].float
  y.append(floatArray[1])
}
于 2015-04-13T21:29:51.637 回答
0

只需打开包装即可浮动,太糟糕了,这在任何地方都没有真正记录。

x.append(jsonArr[i][0].array)
y.append(jsonArr[i][1].array)

  x.append(jsonChart[i][0].float! )
  y.append(jsonChart[i][1].float! )
于 2015-04-13T18:44:50.073 回答