我在写一个以JSON格式读取数据的应用程序。它应该是一个分类广告应用程序。例如,它从单独的JSON文件中提取类别列表,子类别和每个广告。现在我想添加一个搜索选项。问题是我不知道是否有可能通过JSON文件进行搜索,以及它是否有效。有没有人有更好的方式来做到这一点?如何搜索JSON文件?
回答
如果你想为了避免使用数据库,您只有几个选项。将它们加载到内存中(前端或延迟)。这有利于以内存占用成本(空间和时间)为代价实现更快的速度。但是,在你的评论中,你说过这会使用很多内存。另一种选择是每次加载和卸载每个JSON文档。但是如果你担心由于文档数量造成的内存占用,这可能会太慢。有一种方法可以创建自己的本土索引,但是在那个时候,你开始创建自己的数据库。
因此,最终,这听起来像你努力努力避免使用数据库。
考虑CoreData或SqlLite。
如果您想使用简单的JSON文档,请考虑EJDB这是一个基于嵌入式JSON文档的文档数据库(如MongoDb)。还有一个叫做EJDBKit的objective-c wrapper for EJDB。
它的目标是可以被嵌入到 C/C++ ,. NET的NodeJS,Python和Lua中,转到一个快速的MongoDB样库,在LGPL许可的 条款Java和Ruby应用程序。
EJDB是基于东京内阁改进版本的C库。
基于 çBSON
要从JSON
文件中进行搜索,首先需要解析它。一旦你获得了NSDictionary
那么你可以使用NSPredicate
通过它来搜索
NSData *theData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"fileName"ofType:@"json"]];
NSDictionary *myJSONData = [NSJSONSerialization JSONObjectWithData:theData options:NSJSONReadingMutableContainers error:nil];
:
按照此步骤。
希望这将帮助你
或NSArray当然 –
好吧,我知道它需要解析。但即时编写分类广告应用程序。当你在主页上并且想要搜索特定项目时,所有的JSON对象都必须被解析为数组或字典。这不好!我需要另一种解决方案我开始怀疑它是否可能带有JSON。 – user3687
看看下面这两个环节在iOS设备的JSON文件解析:
http://www.appcoda.com/fetch-parse-json-ios-programming-tutorial/
假设你是在本地存储的广告数据,那么另一个选择是使用SimpleDB的,我写了一个键/值数据存储与API实现的查询和数据的JSON表示。有了它,你将存储你的JSON值,然后返回符合你的需求的密钥。 (https://github.com/AaronBratcher/SimpleDB)
[SimpleDB setValue:adJSONValue forKey:myKey inTable: kAdsTable];
你passingTest代码块将在同一时间只分析1个项目,所以内存不会是一个问题,这似乎是你的心头大患。
您的代码将是这个样子:
self.ads = [SimpleDB keysInTable:kAdsTable orderByJSONValueForKey:@"name" passingTest:^BOOL(NSString *key, NSString *value, NSDate *dateAdded, NSDate *dateModified) {
Ad *ad = [[Ad alloc] initWithJSON:value];
BOOL include = NO;
// do testing here
return include;
}
}];
你可以这样使用键,让您的TableView中的行数和填充你的时候,因为需要创建对象:
UITableViewCell *cell = AdCell;
Ad *ad = [[Ad alloc] initWithJson:[SimpleDB valueForKey:[self.ads[indexPath.row]] inTable:kAdsTable];
cell.ad = ad;
return cell;
// This is assuming you have a subclass of UITableViewCell to handle the population of the cell's contents.
- 1. 如何搜索折叠JSON文件
- 2. 如何搜索Json文件中的值
- 3. 如何在JSON文件中搜索?
- 4. 在JSON文件中搜索
- 5. 正确搜索JSON文件
- 6. 搜索使用JSON文件
- 7. 在JSON文件中搜索。
- 8. 如何搜索文件?
- 9. 如何搜索YAML文件?
- 10. 如何搜索.exe文件
- 11. 如何使用搜索:搜索API在txt文件中搜索?
- 12. Json Twitter搜索 - 如何
- 13. 如何搜索JSON jQuery中
- 14. 如何使用java搜索json文件中的任何单词
- 15. 如何索引和搜索.doc文件
- 16. 使用intent搜索json文件
- 17. 通过JSON文件搜索有效
- 18. 用Jquery搜索JSON文件对象
- 19. 搜索在阵列中的JSON文件
- 20. 如何从JSON格式文件中使用Sphinx进行搜索?
- 21. 如何使一个JSON文件的搜索查询的Javascript
- 22. 如何在Mac上搜索json文件的字符串Sierra
- 23. 如何在json文件中搜索对象的值?
- 24. 如何在json文件中搜索数组?
- 25. 如何使用Powershell搜索Windows搜索索引文件
- 26. 如何从Eclipse插件搜索文件?
- 27. 搜索文件
- 28. 搜索文件
- 29. 搜索文件
- 30. 搜索文件?
有看看这里http://stackoverflow.com/questions/777455/is-there-a-query-language-for-json – PeterMmm
你可以加载文件到NSArray然后filterUsingPredicate:[NSPredicate predicateWithBlock ^:...] – kgu87
@这是我首先想到的。但让我们说,即时通讯在主页,我想寻找一辆2008年的宝马。因此,应用程序必须开始将每个类别的详细信息解析为数组或字典,然后执行搜索。这绝对会导致内存不足! – user3687