使用b
我加载了一个具有以下结构的JSON数组。
SwiftyJSON
问题
我想从这个数组中的每个元素创建一个对象。
我的方法
[
{
"x": 2,
"y": 2,
"r": 100,
"description": {"name":"bob","institution":"NYU","technologies":[]}
},
{
"x": 4,
"y": 4,
"r": 200,
"description": {"name":"bob","institution":"NYU","technologies":[]} },...
]
错误
无法使用列表类型((_) - > _)
的参数调用地图答案 0 :(得分:1)
更新,而不是关闭。
var chartPoints = [ChartPointBubble]()
for (index: String, subJson: JSON) in json {
let pointBubble = ChartPointBubble(
x: ChartAxisValueFloat(CGFloat(subJson.x.int),
labelSettings:labelSettings),
y:ChartAxisValueFloat(CGFloat(subJson.y.int)),
diameterScalar: subJson.r.int,
description: subJson.description)
chartPoints.append(pointBubble)
}
编辑:
我看了一下文档。认为最好的方法是循环它。
另外,不确定您的类型:ChartAxisValueFloat.description
。
答案 1 :(得分:0)
错误指出你将一个类型为() - >()的闭包传递给数组' map'方法。在这种情况下,map方法需要接收类型的参数(whateverTypeIsAlreadyInTheArray) - > (ChartPointBubble)。
您可以通过以下方式解决此问题:
编辑: - 最终代码应如下所示
let chartPoints: [ChartPointBubble] = json.array.map{
(var arrayItem) -> ChartPointBubble in
return ChartPointBubble(
x: ChartAxisValueFloat(CGFloat(arrayItem.x),
labelSettings:labelSettings),
y:ChartAxisValueFloat(CGFloat(arrayItem.y)),
diameterScalar: object.r,
description: object.description)
}