将JSON中的字符串(字符串数组)解析为Swift中的字符串数组
Swift是否提供了这样一种转换原始字符串的方法将JSON中的字符串(字符串数组)解析为Swift中的字符串数组,json,swift,parsing,Json,Swift,Parsing,Swift是否提供了这样一种转换原始字符串的方法 "[\"John\",\"Anna\",\"Tom\"]" 到字符串数组([String]) 我一直在寻找克服StackOverflow的方法,但在这种特定的方法中,我找不到答案://在Swift 4和更高版本上,使用JSONDecoder: let rawString = "[\"John\",\"Anna\",\"Tom\"]" let jsonData = rawString.data(using: .utf8)! let strings
"[\"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)
在Swift 4及更高版本上,使用
JSONDecoder
:
let rawString = "[\"John\",\"Anna\",\"Tom\"]"
let jsonData = rawString.data(using: .utf8)!
let strings = try JSONDecoder().decode([String].self, from: jsonData)
这可能是目前推荐的方法(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的说法,因此它应该与编写不同答案的代码基本相同。可能是当今推荐的方法(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的说法,它应该和不同答案的代码差不多