Tengo un dictionary
Necesito generar un JSON string
usando dictionary
. ¿Es posible convertirlo? ¿Pueden por favor ayudarme en esto?
ios
objective-c
json
string
ChandraSekhar
fuente
fuente
Respuestas:
Aquí hay categorías para NSArray y NSDictionary para hacer esto súper fácil. He agregado una opción para impresión bonita (nuevas líneas y pestañas para que sea más fácil de leer).
.
.
.
fuente
NSUTF8StringEncoding
es la codificación correcta?NSNumber
,NSString
yNSNull
- se encuentra en un minuto o dos!Apple agregó un analizador y serializador JSON en iOS 5.0 y Mac OS X 10.7. Ver NSJSONSerialización .
Para generar una cadena JSON desde un NSDictionary o NSArray, ya no necesita importar ningún marco de terceros.
Aquí está cómo hacerlo:
fuente
NSArray
yNSDictionary
haría que su reutilización sea mucho más simple.[NSJSONSerialization JSONObjectWithData:options:error:]
devuelve un objeto de la Fundación a partir de datos JSON dadosPara convertir un NSDictionary en un NSString:
fuente
NOTA: Esta respuesta se dio antes del lanzamiento de iOS 5.
Obtenga el json-framework y haga esto:
myDictionary
será tu diccionariofuente
También puede hacerlo sobre la marcha ingresando lo siguiente en el depurador
fuente
error: use of undeclared identifier 'NSUTF8StringEncoding'
Puede pasar matriz o diccionario. Aquí, estoy tomando NSMutableDictionary.
Para generar una cadena JSON desde NSDictionary o NSArray, no es necesario importar ningún marco de terceros. Simplemente use el siguiente código: -
fuente
fuente
+[NSJSONSerialization dataWithJSONObject:options:error:]: Invalid top-level type in JSON write'
error. Usando XCode 9.0En Swift (versión 2.0) :
fuente
Ahora no necesita clases de terceros ios 5 introdujo Nsjsonserialization
Este código puede ser útil para obtener jsondata.
fuente
NSJSONReadingMutableLeaves | NSJSONReadingMutableContainers
.En Swift, he creado la siguiente función auxiliar:
fuente
A partir de ISO7, al menos, puede hacer esto fácilmente con NSJSONSerialization .
fuente
Aquí está la versión de Swift 4
}
Ejemplo de uso
O si está seguro de que es un diccionario válido, puede usar
fuente
Esto funcionará en swift4 y swift5.
fuente
Este es bastante parecido al estilo de impresión original de Objective-C
fuente