gpt4 book ai didi

swift - 在大型 json 文件中搜索特定的键值对

转载 作者:行者123 更新时间:2023-11-28 06:57:27 24 4
gpt4 key购买 nike

我试图找出在 Swift 2 中搜索大型 json 文件的最佳方法。json 文件看起来像这样:

[
{
"Name": "Tom",
"Job": "Plumber"
},
{
"Name": "Bill",
"Job": "Electrician"
}
]

所以基本上所有的键在字典中都是相同的,但是键对不同(或者可能不同)。

我试图找到一个等于“Bill”或“Tom”的值,但我不知道这些人在数组中的索引是什么。

我目前正在使用增量 for 循环将数组的索引增加一个,并在 for 循环内使用 if 语句来查看键:“Name”是否有一对==“Bill”或“汤姆”或其他任何人。

我的代码有效,但由于 json 文件非常长,它需要很长时间才能解析数据并获得结果。有没有更快的方法来做到这一点?我不确定是否值得一提,但我在项目中使用了 SwiftyJSON 和 Alamofire。

谢谢!

最佳答案

在大数组上使用 filter 应该至少比增量 For-In 循环快一点。

Swift 数组版本:

let peopleNamedTom = arrayOfPeople.filter { $0["Name"] == "Tom" }

SwiftyJSON 数组版本:

let peopleNamedTom = arrayOfPeople.filter { $1["Name"] == "Tom" }

如果不幸的是它在您的情况下并没有明显加快,我发现无论如何它比循环更方便完成此任务。

另请注意,SwiftyJSON 对象会增加开销,并且迭代速度比原生 Swift 集合慢。如果您的 JSON 模型很简单,您可能会受益于将 NSJSONSerialization 与 Swift 数组一起使用而不是 SwiftyJSON。

关于swift - 在大型 json 文件中搜索特定的键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33043378/

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