如何在Swift中解析任何字符串化的数组,如“[\”Bob \“,\”Tim \“,\”Tina \“]”它应该返回一个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
。