如何在Swift中解析任何字符串化的数组,如“[\”Bob \“,\”Tim \“,\”Tina \“]”它应该返回一个JSON数组,如[“Bob”,“Tim”,“Tina”]。
很抱歉,如果这是一个重复的问题,但是找不到数组元素结构未知的通用字符串化数组的任何答案。
答案 0 :(得分: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"]
希望它有所帮助!!
答案 1 :(得分: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
。