如何存储和检索sqlite数据库中的NSArray对象在目标c
实现此目的的最简单方法是将数组转换为JSON字符串并将该字符串存储在数据库中,并在获取数据时将JSON字符串再次转换为数组。
阵列以JSON
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:arrayObject options:NSJSONWritingPrettyPrinted error:nil]
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]);
JSON数组
NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSArray *arrayObject = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
谢谢你的回答对我有用。 –
https://github.com/jmbarnardgh/labqlite和https://github.com/jmbarnardgh/labqlite_model_generator可能能够帮助你的SQLite部分 –
我也使用库https://github.com/ccgus/fmdb和https://github.com/nerdyc/FMDBHelpers与SQLite数据库文件进行交互,并且我有一个包含所需模型的CRUD操作功能的类。这些也是有帮助的。 –
这是很多的方式来做到这一点。其中的一个简单的方法是使用组件的JoinedByString方法。
NSArray* someArray = @[.....];
NSString* result = [someArray componentsJoinedByString:@"<some separator>"];
而且可以的NSKeyedArchiver
NSArray* someArray = @[.....];
NSData* dataToSave = [NSKeyedArchiver archivedDataWithRootObject:someArray];
但你将提供在阵列对象,确认到NSCoding协议。
您也可以使用JSON序列:
NSArray* someArray = @[.....];
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:someArray options:NSJSONWritingPrettyPrinted error:nil]
可以显示一些示例 –
级: { “gradeId”:123, “gradeName”: “ABC” }, { “ gradeId“:222, ”gradeName“:”xyz“ } ] –