Swift是否提供了一种转换原始String的方法
"[\"John\",\"Anna\",\"Tom\"]"
到一个字符串数组([String]
)?
我已经找到了一种方法来完成StackOverflow,但是以这种特定的方式,我找不到答案:/
在Swift 4及更高版本中,使用JSONDecoder
:
let rawString = "[\"John\",\"Anna\",\"Tom\"]"
let jsonData = rawString.data(using: .utf8)!
let strings = try JSONDecoder().decode([String].self, from: jsonData)
Code Different answer可能是现在推荐的方式(Swift 4+)。
作为参考,这是一种经典的方法,与旧的Swift版本兼容:
let rawString = "[\"John\",\"Anna\",\"Tom\"]"
let jsonData = rawString.data(using: .utf8)!
let strings = (try? JSONSerialization.jsonObject(with: jsonData, options: [])) as? [String] ?? []
根据Itai Ferber,JSONDecoder
uses JSONSerialization
under the hood,所以它应该与Code Different答案几乎相同。