我在寫一個以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