Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将JSON中的字符串(字符串数组)解析为Swift中的字符串数组_Json_Swift_Parsing - Fatal编程技术网

将JSON中的字符串(字符串数组)解析为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

Swift是否提供了这样一种转换原始字符串的方法

"[\"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的说法,它应该和不同答案的代码差不多