2017-06-16 65 views
-1

我想将JSON数组转换为一个String数组,然后将字符串数组附加到一个字符串数组。 JSON数组我处理如下:将JSON数组附加到字符串数组

let allPosts = JSON(value) 

//using SwiftyJSON to do something else 

// [["0","1","2","3"],["username1","username12","username123","username1234"]] 

我到目前为止已经试过(我用SwiftyJSON):

let postsIndec = allPosts[0].arrayValue 

//also tried: self.indec.append(contentsOf: postsIndec) //Xcode tells me to remove "contentsOf: " 

self.indec.append(postsIndec) // indec being: var indec = [String]() 

在最后一行我得到这使得错误Cannot convert value of type '[JSON]' to expected argument type 'String'有意义但明显将其转换为字符串

由于子阵列中的字符串数可能大于或小于4(此处用作示例),因此我无法循环预定义的次数。你能帮助我吗?我找不到任何描述相同问题的问题。

+0

它是不是真的清楚你正在尝试做什么? swiftJSON返回的数据是'[[“0”,“1”,“2”,“3”],[“username1”,“username12”,“username123”,“username1234”]]。你想提取每个数组到一个单独的数组,例如'array1 = [“0”,“1”,“2”,“3”]' – Lamar

+0

'allPosts'是一个包含数组的JSON数组,我想添加第一个“allPosts”数组与包含字符串的'self.indec'数组中已有的数组有关。 @Lamar – Moritz

+0

我删除我的答案,因为你的评论仍然不清楚,如果你说它是字符串已经然后做'postsIndec.map {indec.append($ 0)}' – Lamar

回答

1

尝试使用地图转换[JSON]到[字符串]:

self.indec.append(contentsOf: postsIndec.map {$0.stringValue}) 
+0

这会导致类似的错误:/ ...:''map'产生'[T]',而不是预期的上下文结果类型'String'' – Moritz

+0

@Moritz更新了追加数组而不是单个元素的答案。 – srvv

+0

这就是我一直在寻找的!非常感谢! – Moritz