一尘不染

快速将一个字符串作为数组转换为字符串数组

swift

我有一个字符串:

"["word1","word2"]"

我想要一个简单的方法将其转换为实际的[String]

我能从中挖掘出的所有其他问题都与将int字符串转换为数组有关。

我试着做

Array(arrayLiteral: "["word1","word2"]")

但是我明白了

["[\"word1\",\"word2\"]"]

手动清理边缘并去除斜线似乎是我做错了什么。

我很好奇是否有一种简单的方法可以将字符串数组作为字符串转换为字符串数组。

即转换"["word1","word2"]"["word1","word2"]

解决方案 (感谢@Eric D)

    let data = stringArrayString.dataUsingEncoding(NSUTF8StringEncoding)

    var stringsArray:[String]!

    do
    {
        stringsArray = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [String]
    } catch
    {
        print()
    }

    print("Array is \(stringsArray)")

阅读 307

收藏
2020-07-07

共1个答案

一尘不染

将您的“字符串数组”编码为数据,然后将此数据作为JSON解码为Swift数组。

像这样:

let source = "[\"word1\",\"word2\"]"

guard let data = source.dataUsingEncoding(NSUTF8StringEncoding),
    arrayOfStrings = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? [String] else {
        fatalError()
}

print(arrayOfStrings)  // ["word1", "word2"]
print(arrayOfStrings[1])  // "word2"
2020-07-07