Hice algunas pruebas con TouchJSON anoche y funcionó bastante bien en general para casos simples. Estoy usando el siguiente código para leer algún contenido JSON desde un archivo, y deserializar que:Deserialización de un complejo resultado JSON (matriz de diccionarios) con TouchJSON
NSString *jsonString = [[NSString alloc] initWithContentsOfFile:@"data.json"];
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF32BigEndianStringEncoding];
NSError *error = nil;
NSDictionary *items = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error];
NSLog(@"total items: %d", [items count]);
NSLog(@"error: %@", [error localizedDescription]);
que funciona bien si tengo un objeto JSON muy simple en el archivo (es decir, un diccionario):
{"id": "54354", "name": "boohoo"}
de esta manera pude conseguir el acceso a la matriz de valores, ya que quería conseguir el artículo basado en su índice dentro de la lista:
NSArray *items_list = [items allValues];
NSString *name = [items_list objectAtIndex:1];
(entiendo que yo podría tener fet ched el nombre con la API de diccionario)
Ahora me gustaría deserializar una cadena JSON semi-compleja, que representa una matriz de diccionarios. Un ejemplo de tal cadena JSON es a continuación:
[{"id": "123456", "name": "touchjson"}, {"id": "3456", "name": "bleh"}]
Cuando trato de ejecutar el mismo código de seguridad contra este nuevo contenido en el archivo data.json, no consigo ningún resultado espalda. Mi llamada NSLog() dice "artículos totales: 0", y no vuelve a aparecer ningún error en el objeto NSError.
¿Alguna pista sobre lo que está pasando? Estoy completamente perdido en qué hacer, ya que no hay mucha documentación disponible para TouchJSON, y mucho menos ejemplos de uso.
Gracias, pude descubrir cómo deserializar esa compleja cadena JSON con json-framework. – jpm
He estado usando este framework también para estructuras complejas de json y aún no me he encontrado con ningún problema – seanalltogether
¡El enlace está muerto! – Gustav