gpt4 book ai didi

json - 根据 ID 从 JSON 中检索数据

转载 作者:行者123 更新时间:2023-11-28 12:29:51 25 4
gpt4 key购买 nike

我有一些JSON如下

[
{
"id": "1",
"locid": "352260",
"name": "Clifton-on-Teme",
"postcode": "WR6 6EW",
"club": "Warley Wasps",
"lat": "52.257011",
"lon": "-2.443215",
"type": "Soil"
},
{
"id": "2",
"locid": "310141",
"name": "Drayton Manor",
"postcode": "ST18 9AB",
"club": "Warley Wasps",
"lat": "52.745810",
"lon": "-2.102677",
"type": "Soil"
},

(这是其中 2 组的摘录。)

我有一个代码查找如下

func downloadtrackDetails(completed: @escaping DownLoadComplete) {
Alamofire.request(trackURL).responseJSON { (response) in
if let dict = response.result.value as? [Dictionary<String, Any>] {
if let postcode = dict[0]["postcode"] as? String {
self._postcode = postcode
}
if let trackType = dict[0]["type"] as? String {
self._trackType = trackType
}
}
completed()
}
}

我的主屏幕上有许多项目,每个项目的 ID 都分配了 1 到 8。目前我只能在运行时返回 json 字典中的第一个条目。我需要做什么才能让它提取特定 ID 的数据。因此,如果我单击 ID 为 1 的第一个图标,它会返回 WR6 6EW 的邮政编码

最佳答案

实际上您的 dict 是一个数组,包含 [String:String] 字典。这摆脱了一些类型转换。

您可以使用filter 函数通过id 获取项目

     let id = "2"         

if let array = response.result.value as? [Dictionary<String, String>],
let foundItem = array.filter({ $0["id"]! == id }).first {
if let postcode = foundItem["postcode"] {
self._postcode = postcode
}
if let trackType = foundItem["type"] {
self._trackType = trackType
}
}

关于json - 根据 ID 从 JSON 中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42302831/

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