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

问题描述 投票:0回答:2

如何在Swift中解析任何字符串化的数组,如“[\”Bob \“,\”Tim \“,\”Tina \“]”它应该返回一个JSON数组,如[“Bob”,“Tim”,“Tina”]。

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

swift nsjsonserialization
2个回答
1
投票

尝试这样做,每次都为我工作:

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"]希望它有所帮助!


0
投票
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

© www.soinside.com 2019 - 2024. All rights reserved.