swift4 - 数组(字符串内部)转换,Swift 4
问题描述
有谁知道将字符串中的数组转换为实际数组而不影响任何字符的最简单方法?
例如:
var array: [String] = []
let myStr = "[\"Hello,\", \"World\"]"
// I would like 'array' to store: ["Hello,", "World"]
我认为它可以完成,Array(myStr)
但这只会使所有字符组成一个数组。
帮助将不胜感激。谢谢你。
解决方案
您可以使用 对其进行解码JSONDecoder
,因为它是 JSON。
下面的例子:
let myStr = "[\"Hello,\", \"World\"]"
let data = Data(myStr.utf8)
do {
let decoded = try JSONDecoder().decode([String].self, from: data)
print("Decoded:", decoded)
} catch {
fatalError("Error")
}
// Prints: Decoded: ["Hello,", "World"]
怎么了:
- 您的
myStr
字符串将转换为Data
. - 然后将此数据解码为
[String]
- 这是一个字符串数组。 [String]
然后打印类型的解码数据。
我们使用 do-try-catch 模式来捕获错误,例如不正确的格式或输入的数据。
推荐阅读
- c# - 结合两个属性,用c#表达式组成一个对象
- lua - 为什么覆盖对象参数不会将新引用传递给外部范围?
- string - Delphi如何将非分隔符字符串拆分为字符串列表
- python - 从 WSL2 中的应用程序到 Windows 10 中的应用程序的 Https 调用
- java - java.io.FileNotFoundException 通过使用 Spring RestTemplate 上传具有文件名的文件
- reactjs - 如何将数组值传递给另一个组件?
- botframework - 无法从 Linux Mint 20.2 上的 Azure 门户打开 Bot Framework Composer
- r - 在条件下重建 tibble
- r - 控制图例在 GGplot 中的位置
- html - 如何更改导航栏下拉菜单的背景颜色?