Ios 如何在swift中获得正确的字符串数组?

Ios 如何在swift中获得正确的字符串数组?,ios,swift3,Ios,Swift3,我将此作为输出,如何在Swift中获得这样的字符串数组 ["[\"1\", \"7\", \"13\", \"19\", \"25\"]", "[\"6\", \"12\", \"13\"]"] 我试着将这个数组转换成合适的数组,但没有成功。有解决办法吗 谢谢 简单解决方案(无重大错误处理),字符串可以被视为JSON ["1", "7", "13", "19", "25", "6", "12", "13"] 简单的解决方案(没有明显的错误处理),字符串可以作为JSON处理 ["1", "7"

我将此作为输出,如何在Swift中获得这样的字符串数组

["[\"1\", \"7\", \"13\", \"19\", \"25\"]", "[\"6\", \"12\", \"13\"]"]
我试着将这个数组转换成合适的数组,但没有成功。有解决办法吗

谢谢

简单解决方案(无重大错误处理),字符串可以被视为JSON

["1", "7", "13", "19", "25", "6", "12", "13"]
简单的解决方案(没有明显的错误处理),字符串可以作为JSON处理

["1", "7", "13", "19", "25", "6", "12", "13"]

首先,假设您有一个简单的数组,可以使用
flatMap
将其展平:

let array = ["[\"1\", \"7\", \"13\", \"19\", \"25\"]", "[\"6\", \"12\", \"13\"]"]

var result = [String]()
for item in array {
    let jsonArray = try! JSONSerialization.jsonObject(with: item.data(using: .utf8)!) as! [String]
    result.append(contentsOf: jsonArray)
}
print(result)
输出

[“1”、“7”、“13”、“19”、“25”、“6”、“12”、“13”]

或者,更简单的是,只需将第二个数组附加到第一个数组,完全绕过数组数组:

let input = [["1", "7", "13", "19", "25"], ["6", "12", "13"]]
let output = input.flatMap { $0 }
但您的示例看起来不是数组的数组,而是数组描述的数组,例如:

let array1 = ["1", "7", "13", "19", "25"]
let array2 = ["6", "12", "13"]
let output = array1 + array2

与其弄清楚如何反转这个插值字符串数组,我建议您绕过插值字符串(或数组的
description
)。首先,假设您有一个简单的数组,您可以使用
flatMap
将其展平:

let array = ["[\"1\", \"7\", \"13\", \"19\", \"25\"]", "[\"6\", \"12\", \"13\"]"]

var result = [String]()
for item in array {
    let jsonArray = try! JSONSerialization.jsonObject(with: item.data(using: .utf8)!) as! [String]
    result.append(contentsOf: jsonArray)
}
print(result)
输出

[“1”、“7”、“13”、“19”、“25”、“6”、“12”、“13”]

或者,更简单的是,只需将第二个数组附加到第一个数组,完全绕过数组数组:

let input = [["1", "7", "13", "19", "25"], ["6", "12", "13"]]
let output = input.flatMap { $0 }
但您的示例看起来不是数组的数组,而是数组描述的数组,例如:

let array1 = ["1", "7", "13", "19", "25"]
let array2 = ["6", "12", "13"]
let output = array1 + array2

我不想弄清楚如何反转这个插值字符串数组,而是建议您重新考虑如何构建它,绕过插值字符串(或数组的
描述

您目前的尝试是什么?@Pratik Sanap您需要删除或替换“\”的出现在附加到数组之前。请编辑您的问题以包含用于创建数组的代码。数组中存在可选字符串,我已删除该字符串。我也试着用“”来代替“\”,但没什么幸运的谢谢你们!您目前正在尝试什么?@Pratik Sanap在附加到数组之前,您需要删除或替换“\”的出现处。编辑您的问题,以包含您用于创建数组的代码。我删除的数组中存在可选字符串。我也试着用“”来代替“\”,但没什么幸运的谢谢你们!或者
let result=array.flatMap{try!JSONSerialization.jsonObject(使用$0.data(使用:.utf8)!)作为![String]}
或者
let result=array.flatMap{try!JSONSerialization.jsonObject(使用:$0.data(使用:.utf8)!)作为![String]}