如何解析 iOS Swift 中的字符串化数组

How to parse a stringified array in iOS Swift

如何解析Swift中的“[\"Bob\", \"Tim\", \"Tina\"]”等字符串化数组?它应该 return 一个 JSON 数组,例如 ["Bob"、"Tim"、"Tina"].

抱歉,如果这是一个重复的问题,但我无法找到数组元素结构未知的通用字符串化数组的任何答案。

尝试这样做,每次都对我有用:

let jsonText = "[\"Bob\", \"Tim\", \"Tina\"]"

    var array: [String]?

    if let data = jsonText.data(using: String.Encoding.utf8) {

        do {
            array = try JSONSerialization.jsonObject(with: data, options: []) as? [String]

            if let myArray = array {
                 print(myArray)
            }
        } catch let error as NSError {
            print(error)
        }
    }

它打印:["Bob", "Tim", "Tina"] 希望对你有帮助!!

extension String
{      
    func decodeUrl() -> String
    {
        return self.removingPercentEncoding!
    }
}

extension Data
{
    func dataToJSON() -> Any? {
        do {
            return try JSONSerialization.jsonObject(with: self, options: [])
        } catch let myJSONError {
            print(myJSONError)
        }
        return nil
    }
}

用法:

if let data = your_stringified_array.decodeUrl().data(using: String.Encoding.utf8) {
            if let jsonc = data.dataToJSON() {
                print(jsonc)
            }
        }

结果在 AnyObject.