J'ai créé le prochain dictionnaire:
var postJSON = [ids[0]:answersArray[0], ids[1]:answersArray[1], ids[2]:answersArray[2]] as Dictionary
et j'obtiens:
[2: B, 1: A, 3: C]
Alors, comment puis-je le convertir en JSON?
json
swift
serialization
Orkhan Alizade
la source
la source
NSJSONSerialization
Réponses:
Swift 3.0
Avec Swift 3, le nom
NSJSONSerialization
et ses méthodes ont changé, conformément aux directives de conception de l'API Swift .Swift 2.x
Swift 1
la source
[2: A, 1: A, 3: A]
. Mais qu'en est-il des accolades?{"result":[{"body":"Question 3"}] }
dataWithJSONObject
se produire des « accolades » ( à savoir les accolades) dans le cadre de la résultanteNSData
objet.Vous faites une fausse hypothèse. Ce n'est pas parce que le débogueur / Playground affiche votre dictionnaire entre crochets (c'est ainsi que Cocoa affiche les dictionnaires) que cela ne signifie pas que c'est la façon dont la sortie JSON est formatée.
Voici un exemple de code qui convertira un dictionnaire de chaînes en JSON:
Version Swift 3:
Pour afficher ce qui précède dans un format «joli imprimé», vous devez modifier la ligne d'options en:
Ou dans la syntaxe Swift 2:
Le résultat de cela est
Ou dans un joli format:
Le dictionnaire est entouré d'accolades dans la sortie JSON, comme vous vous en doutez.
ÉDITER:
Dans la syntaxe Swift 3/4, le code ci-dessus ressemble à ceci:
la source
Swift 5:
Notez que les clés et les valeurs doivent être implémentées
Codable
. Les chaînes, les entiers et les doubles (et plus) le sont déjàCodable
. Voir Encodage et décodage de types personnalisés .la source
Ma réponse à votre question est ci-dessous
La réponse est
la source
Parfois, il est nécessaire d'imprimer la réponse du serveur à des fins de débogage. Voici une fonction que j'utilise:
Exemple d'utilisation:
la source
Dictionary
Extension Swift 4 .la source
encoding: .ascii
dans l'extension publique..utf8
sera beaucoup plus sûr!Swift 3 :
la source
La réponse à votre question est ci-dessous:
Swift 2.1
la source
Voici une extension simple pour ce faire:
https://gist.github.com/stevenojo/0cb8afcba721838b8dcb115b846727c3
la source
la source