2012-08-27 22 views
5

que tienen algunos valores de cadena como este formato,Cómo convertir NSString como formato JSON en ios5?

[INFO] [Tue Aug 21 14:54:22 2012] [ViewController] [26] [Hello] [;] 

Quiero convertir a estas cadenas JSON utilizando NSJSONSerialization.

Estoy utilizando el código siguiente para convertir las cadenas,

for (i = 0; i < [logArray count]; i++) 
{ 
    individualLogInfoArray = [[logArray objectAtIndex:i] componentsSeparatedByString:kDelimitterSpace]; 
    [dictionaryArray addObject:individualLogInfoArray]; 

} 

finalLogDictionary = [NSMutableDictionary dictionaryWithObjectsAndKeys:dictionaryArray,@"Log", nil]; 
    NSError *error; 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:finalLogDictionary 
                options:NSJSONWritingPrettyPrinted 
                error:&error]; 

NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 
NSLog(@"JsonString = %@",jsonString); 

Entonces conseguir una salida como ésta,

JsonString = { 
    "Log" : [ 
    "[INFO] [Tue Aug 21 14:54:22 2012] [ViewController] [26] [Hello] [;]", 
    "[DEBUG] [Tue Aug 21 14:54:22 2012] [ViewController] [27] [hi] [;]", 
    "[INFO] [Tue Aug 21 14:54:22 2012] [ViewController] [28] [Its there] [;]", 
    "[PROD] [Tue Aug 21 14:54:22 2012] [ViewController] [29] [Welcome] [;]" 
    ] 
} 

pero yo quiero una salida como ésta,

{ 
"log": "[INFO] [Tue Aug 21 14:54:22 2012] [ViewController] [26] [Hello],[INFO] [Tue Aug 21 14:54:22 2012] [ViewController] [26] [Hello],[INFO] [Tue Aug 21 14:54:22 2012] [ViewController] [26] [Hello]" 

}

No sé cómo generar una cadena JSON en el formato anterior, sugiera una solución.

Respuesta

4

La cadena que recibe es JSON válida, mientras que la cadena que desea no lo es. Por lo tanto, no podrá usar la biblioteca iOS JSON para generar JSON no válido.

Puede probar la validez mediante el uso de esta utilidad en línea,

JSONLint

Espero que ayude.

ACTUALIZACIÓN: La pregunta se ha revisado desde entonces para mostrar el JSON válido como salida requerida.

+0

Gracias por su respuesta –

+0

gracias por su información. esto es válido json, no sé cómo generar un jsonString –

+0

haz tu propio intento – Ben10

0

Su pregunta revisada es ahora la manipulación de objetos NSDictionary, NSString y NSArray para obtener el formato deseado antes de serializarlo como JSON.

los necesite manipular sus datos originales en un diccionario, que contiene un par clave/valor,

registro:

... y luego serializar que, como JSON.

En su bucle donde agrega objetos para cada elemento logArray, puede anexarString con el formato requerido.