【发布时间】:2021-09-16 15:17:28
【问题描述】:
我想从 JSON 中获取字符串的值,我可以将 JSON 解析为 Dictionary 但无法转换为字符串数组
来自服务器
{
“ALL TEXT: [
{
"text": "hello"
},
{
"text": "hi"
},
{
"text": "how r u"
}
]
}
我只想将文本值附加到我的字符串数组“textsList”
var textsList : [String]()
这是我尝试过的
URLSession.shared.dataTask(with: request) { (data, response, err) in
let json = try! JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! Dictionary<String, Any>
let AllText = json[“ALL TEXT”] as! [Dictionary<String, Any>]
let value = JSON(AllText)
AllText.forEach { fetch in
self.textsList.append(fetch.values) // ERROR no exact matches in call to instance method append
}
for(key, object) in value{
print(value) //output: {"text": "hello" },{"text": "hi" }
print(value.string) //output:nil
}
}.resume()
我只想将字典转换为数组,但也可以将 JSON 直接转换为字符串数组的替代解决方案。
【问题讨论】:
-
我怀疑你有从 json 返回的字典。您有一个具有 text 属性的匿名类列表。
-
如果你真的有一本字典,那么使用 Values[] 属性。它将返回一个字符串列表。
-
@TMcKeown 我认为您将 C# 和 Swift 混为一谈。 OP 询问 Swift 并且您的 cmets 指的是 C# 概念(匿名类和字典的
Values[]属性) -
啊。我以为这是c#。哈哈好的thx
标签: ios arrays swift dictionary