Я хочу сохранить & восстановить объект NSArray в одном столбце базы данных sqlite. Кто-нибудь знает, как я могу это достичь?Как сохранить и загрузить объект NSArray в базе данных sqlite в объекте 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 для требуемых моделей. Это также полезно. –
Это много способов сделать это. Одним из простых является использование componentsJoinedByString метод.
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 " } ] –