gpt4 book ai didi

json - 使用 Alamofire 获取数组键值

转载 作者:可可西里 更新时间:2023-11-01 00:58:18 25 4
gpt4 key购买 nike

我正在发出一个简单的请求以从 JSON 文件中获取特定数据,但我在获取确切数据时遇到了问题。

JSON 文件:

{
"Something1": {
"Added": "09-10-2016",
"Expires": "09-12-2016",
"Reliability": "78%",
"Views": "2",
"Priority": "High"
},
"Something2": {
"Added": "09-11-2016",
"Expires": "09-13-2016",
"Reliability": "98%",
"Views": "5",
"Priority": "Low"
}
}

快速代码:

Alamofire.request("https://example.com/args.json").responseJSON { response in
if let JSON = response.result.value as? [String:AnyObject] {
print(JSON["Something1"])
}
}

使用 print(JSON["Something1"]),它会像预期的那样打印 Something1 的所有内容,但是当我尝试执行 print(JSON["Something1 "]["Views"]) 例如。我将如何解决这个问题?

最佳答案

恐怕您的问题与 Alamofire 无关,它更像是使用 Swift 处理 JSON。在您进行第一个可选绑定(bind)的情况下,您正在转换为 [String: AnyObject] 并且它是正确的,这意味着您可以下标 JSON["Something1"].

但是在那之后,当您尝试再次通过 JSON["Something1"]["Views"] 下标时,编译器不知道 JSON["Something1"] 有什么 所以你不能用作字典,而是需要将它再次转换为字典,因为它是使用可选绑定(bind)嵌套的,如下所示:

if let nestedDictionary1 = JSON["Something1"] as? [String: AnyObject] {
// access individual value in dictionary

if let views = nestedDictionary1["Views"] as? Int {
print(views)
}
}

您可以在 article 中阅读更多关于 JSON 的工作苹果公司。

希望对你有帮助

关于json - 使用 Alamofire 获取数组键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39865081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com