2010-06-29 13 views
8

Recibo una respuesta JSON de un servicio web, pero no está envuelto por las etiquetas [] requeridas por el analizador JSON que estoy usando, así que necesito adjuntar y anexar esos caracteres a mi NSString antes de pasar eso al analizador JSON .anteponer NSString?

Esto es lo que haver hasta ahora:

NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 
responseString = [responseString stringByAppendingFormat:@"]"]; 

La Anexión funciona perfectamente ahora sólo deberán estar precedidos por [a esto, parece que no puede encontrar este método.

Respuesta

10

Prueba esto:

responseString = [NSString stringWithFormat:@"[%@]", responseString]

Hay otras maneras de acheiving lo mismo, estoy seguro de que otros serán capaces de proporcionar métodos más eficientes, pero si responseString no es muy grande, entonces el arriba debería ser suficiente.

7

El uso de un NSMutableString puede hacerlo de esta manera:

NSMutableString *str = [[NSMutableString alloc] initWithString:@"Overflow"]; 
[str insertString:@"Stack" atIndex:0]; 

Después de que el str NSMutableString llevará a cabo:

"StackOverflow" 
3

simplemente para la corrección:

responseString = [@"[" stringByAppendingString:responseString]; 

Es s A veces sorprende a las personas que pueden enviar un literal de una cadena, hasta que lo piensen. ;)

+0

Suena interesante. ¿Podría explicar esto un poco, por favor (o proporcionar una fuente para una comprensión más profunda)? – plocks

+0

Puede enviar el mensaje '-stringByAppendingString:' a cualquier 'NSString'. La cadena literal '@" ["' es una 'NSString'. Entonces, puedes llamar '-stringByAppendingString:' en '@" ["'. La pregunta original fue, aproximadamente, "Sé cómo anexar a una cadena, ¿pero cómo preceder a una?" La idea es que agregar "foo" al final de "barra" es lo mismo que anteponer "barra" al comienzo de "foo". Anular y agregar son la misma operación si solo ajusta su enfoque mental. El anteponer un corchete izquierdo a una cuerda es lo mismo que anexar la cuerda a un corchete izquierdo. –

+0

Ahora lo entiendo. Muchas gracias. – plocks