私はRealmとObjective-Cの新機能です。私はすでにJSON配列を読み込んでRealmに解析するアプリケーションを持っています。うまく動作しますが、20,000を超えるオブジェクトを解析するには2分30分かかります。私は短い時間で解析を行う必要があります。IOS(Objective-C)でJSONとRealm DBを効率的に解析します。
これは私のJSONの構造である:2
{"resultados":[
{
"id": 1,
"tipo": 9,
"titulo": "name tittle curso",
"id_padreactividad": 0,
"hora": "16:55-20:30",
"fecha": "15/02/2015",
"acreditado": "Sí",
"num_creditos": 0.5,
"ubicacion": 2,
"tema": "null",
"patrocinadorId": 0
},
{
"id": 2,
"tipo": 16,
"titulo": "Apertura e Introducción\n",
"id_padreactividad": 1,
"hora": "16:55-17:00",
"fecha": "15/02/2015",
"num_creditos": 0.0,
"ubicacion": 2,
"tema": "null",
"patrocinadorId": 0,
"descripcion": "null"
},ect...
そして、これがこの作品の罰金レルムにJSONから
//obtenemos los datos del json con esta simple estructura
NSData *allCoursesData = [[NSData alloc] initWithContentsOfURL:
[NSURL URLWithString:@"String-for-http-direction-to-json"]];
NSError *error;
//hacemos el parseo del json, el error está creado por si fallara para que no siga
NSMutableDictionary *allCourses = [NSJSONSerialization
JSONObjectWithData:allCoursesData
options:NSJSONReadingMutableContainers
error:&error];
if(error)
{
NSLog(@"%@", [error localizedDescription]);
}
else {
NSArray *resultado = allCourses[@"resultados"];
total=[resultado count];
for (NSDictionary *theCourse in resultado)
{
// NSLog(@"Insertando actividad...%d",contador);
NSLog(@"%d/%d",progress,total);
contador=contador+1;
Objeto=[[ActividadBean alloc] init];
Objeto.id_act = [theCourse[@"id"] intValue];
Objeto.tipo = [theCourse[@"tipo"]intValue];
Objeto.titulo = theCourse[@"titulo"];
Objeto.id_padreactividad = [theCourse[@"id_padreactividad"]intValue];
Objeto.hora = theCourse[@"hora"];
Objeto.fecha = theCourse[@"fecha"];
Objeto.acreditado = theCourse[@"acreditado"];
Objeto.num_creditos = [theCourse[@"num_creditos"] floatValue];
Objeto.ubicacion = [theCourse[@"ubicacion"] intValue];
Objeto.tema = theCourse[@"tema"];
Objeto.patrocinadorId=[theCourse[@"patrocinadorId"]intValue];
//guardamos el objeto
[Objeto save];
}
}
を解析するために私のコードで、すべてが問題なくインポートされますが(いくつかの時間がかかります:20000回以上の解析のための30分)私はJavaが "createAllFromJson"メソッドを持っていることを知っていますが、IOSに何かそんなものがあるかどうかは分かりません。
ありがとう!あなたは正しいです、保存メソッドが問題だった、私は(そして閉じる)すべてのオブジェクトのトランザクションを開いて、単一の書き込みトランザクションはすべて正常に動作します! –