gpt4 book ai didi

ios - 为 IOS 解析器组织 JSON 的最佳方式

转载 作者:行者123 更新时间:2023-11-28 22:54:51 24 4
gpt4 key购买 nike

我正在使用 NSJSONSerialization 从我的网络服务中解析一些 JSON,我想知道最有效的布局方式。

目前我以这种格式生成 JSON:

[
{"title":"title Val","description":"description val","appointmentDate":"2012-06-16T00:00:00"},
{"title":"title Val","description":"description val","appointmentDate":"2012-06-16T00:00:00"},
{"title":"title Val","description":"description val","appointmentDate":"2012-06-16T00:00:00"}
]

解析器构造一个 NSArray,其中每个元素都是一个包含约会详细信息(标题、描述、日期)的 NSDictionary

现在,我的应用程序实际上需要在已解析的 JSON 中搜索日期介于某个时间间隔之间的约会,以便它可以根据某些用户操作显示这些约会。目前我只是扫描数组并检索满足条件的任何约会。这当然是 O(n)。当我想在特定字段上搜索时,我是否应该以不同的方式表示我的 JSON?大概是这样?

{
"2012-06-16T00:00:00" : {"title":"title Val","description":"description val"},
"2012-06-18T00:00:00" : {"title":"title val","description":"description val"},
"2012-06-20T00:00:00" : {"title":"title val","description":"description val"},
}

这样,解析器将生成一个 NSDictionary,其中每一行的键都是约会日期。这样做更有效,还是我可以同样快速地对 NSDictionary 对象的 NSArray 执行二进制搜索?如果搜索数组,则需要在比较谓词中执行 [row objectForKey:@"appointmentDate"],这可能是一项昂贵的操作。

最佳答案

如何解析约会并使用诸如 Core Data 之类的东西存储它们,并在您要搜索的字段上设置索引?这可能比尝试手动优化和搜索更简单、更快。

不过,如果您想手动执行此操作,那么是的,构建一个以您要搜索的信息为关键字的排序索引将使您的搜索效率更高。因此,您可以使用字典将 NSDate(不要以字符串格式保存数据)映射到该日期的约会集,然后您可以对字典的键集(确保它首先正确排序!)以确定落在搜索间隔内的键范围。然后你可以进入字典并获取相应的约会。

关于ios - 为 IOS 解析器组织 JSON 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11042946/

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