He creado el siguiente diccionario:
var postJSON = [ids[0]:answersArray[0], ids[1]:answersArray[1], ids[2]:answersArray[2]] as Dictionary
y obtengo:
[2: B, 1: A, 3: C]
Entonces, ¿cómo puedo convertirlo a JSON?
json
swift
serialization
Orkhan Alizade
fuente
fuente
NSJSONSerialization
Respuestas:
Swift 3.0
Con Swift 3, el nombre
NSJSONSerialization
y sus métodos han cambiado, de acuerdo con las Pautas de diseño de API de Swift .Swift 2.x
Swift 1
fuente
[2: A, 1: A, 3: A]
. ¿Pero qué hay de las llaves?{"result":[{"body":"Question 3"}] }
dataWithJSONObject
que producir las "llaves" (es decir, los frenos) como parte de la resultanteNSData
objeto.Estás haciendo una suposición equivocada. El hecho de que el depurador / Playground muestre su diccionario entre corchetes (así es como Cocoa muestra los diccionarios) no significa que esa sea la forma en que se formatea la salida JSON.
Aquí hay un código de ejemplo que convertirá un diccionario de cadenas a JSON:
Versión Swift 3:
Para mostrar lo anterior en formato "bastante impreso", debe cambiar la línea de opciones a:
O en la sintaxis de Swift 2:
La salida de eso es
O en formato bonito:
El diccionario está encerrado entre llaves en la salida JSON, tal como cabría esperar.
EDITAR:
En la sintaxis Swift 3/4, el código anterior se ve así:
fuente
Swift 5:
Tenga en cuenta que las claves y los valores deben implementarse
Codable
. Cadenas, Ints y Dobles (y más) ya estánCodable
. Consulte Codificación y decodificación de tipos personalizados .fuente
Mi respuesta a tu pregunta está abajo
La respuesta es
fuente
A veces es necesario imprimir la respuesta del servidor con fines de depuración. Aquí hay una función que uso:
Ejemplo de uso:
fuente
Dictionary
Extensión Swift 4 .fuente
encoding: .ascii
en extensión pública..utf8
será mucho más seguro!Swift 3 :
fuente
La respuesta a su pregunta está a continuación:
Swift 2.1
fuente
Aquí hay una extensión fácil para hacer esto:
https://gist.github.com/stevenojo/0cb8afcba721838b8dcb115b846727c3
fuente
fuente