将 JSON 数组附加到字符串数组

Posted

技术标签:

【中文标题】将 JSON 数组附加到字符串数组【英文标题】:Appending JSON array to string array 【发布时间】:2017-06-16 17:53:51 【问题描述】:

我想将 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(此处用作示例),因此我无法按预定义的次数循环遍历它。你能帮我解决这个问题吗?我找不到任何描述相同问题的问题。

【问题讨论】:

不清楚您要做什么?就是swiftJSON返回的数据[["0","1","2","3"],["username1","username12","username123","username1234"]]。您是否尝试将每个数组提取到一个单独的数组中,例如 array1 = ["0","1","2","3"] allPosts 是一个包含数组的 JSON 数组,我想将allPosts 的第一个数组添加到包含字符串的self.indec 数组中已有的数组中。 @拉马尔 我删除了我的答案,因为您的评论仍然不清楚,如果您说它已经是字符串,那么请执行postsIndec.map indec.append($0) 不是,这就是我一直在说的……甚至在标题中。我不能完全按照您在评论中尝试做的事情,因为它是 JSON 而不是字符串 【参考方案1】:

尝试使用map将[JSON]转换为[String]:

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

【讨论】:

这会导致类似的错误:/...: 'map' produces '[T]', not the expected contextual result type 'String' @Moritz 将答案更新为追加数组而不是单个元素。 这正是我想要的!非常感谢!

以上是关于将 JSON 数组附加到字符串数组的主要内容,如果未能解决你的问题,请参考以下文章

将数组 int 附加到字符串数组

Java - 将引号附加到数组中的字符串并连接数组中的字符串

将字符串附加到 Matlab 数组

快速多部分/表单数据上传,将字符串数组附加到正文(问题:数组作为字符串到服务器)

你能用 swift 将字符串附加到 Firebase 数组吗

如何将部分字符数组附加到字符串?