将 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 数组附加到字符串数组的主要内容,如果未能解决你的问题,请参考以下文章
Java - 将引号附加到数组中的字符串并连接数组中的字符串
快速多部分/表单数据上传,将字符串数组附加到正文(问题:数组作为字符串到服务器)