Eu criei o próximo dicionário:
var postJSON = [ids[0]:answersArray[0], ids[1]:answersArray[1], ids[2]:answersArray[2]] as Dictionary
e eu recebo:
[2: B, 1: A, 3: C]
Então, como posso convertê-lo para JSON?
json
swift
serialization
Orkhan Alizade
fonte
fonte
NSJSONSerialization
Respostas:
Swift 3.0
Com o Swift 3, o nome
NSJSONSerialization
e seus métodos foram alterados, de acordo com as Diretrizes de design da API do Swift .Swift 2.x
Swift 1
fonte
[2: A, 1: A, 3: A]
. Mas e os colchetes?{"result":[{"body":"Question 3"}] }
dataWithJSONObject
se produzir as "chaves" (isto é, as cintas) como parte do resultanteNSData
objecto.Você está fazendo uma suposição errada. Só porque o depurador / Playground mostra seu dicionário entre colchetes (que é como o Cocoa exibe dicionários) não significa que é dessa maneira que a saída JSON é formatada.
Aqui está um código de exemplo que converterá um dicionário de strings para JSON:
Versão Swift 3:
Para exibir o texto acima em formato "bastante impresso", altere a linha de opções para:
Ou na sintaxe do Swift 2:
A saída disso é
Ou no formato bonito:
O dicionário é colocado entre chaves na saída JSON, exatamente como você esperaria.
EDITAR:
Na sintaxe Swift 3/4, o código acima se parece com o seguinte:
fonte
Swift 5:
Observe que chaves e valores devem ser implementados
Codable
. Strings, Ints e Doubles (e mais) já sãoCodable
. Consulte Tipos personalizados de codificação e decodificação .fonte
Minha resposta para sua pergunta está abaixo
A resposta é
fonte
Dictionary
Extensão Swift 4 .fonte
encoding: .ascii
em extensão pública..utf8
será muito mais seguro!Às vezes, é necessário imprimir a resposta do servidor para fins de depuração. Aqui está uma função que eu uso:
Exemplo de uso:
fonte
Swift 3 :
fonte
A resposta para sua pergunta está abaixo:
Swift 2.1
fonte
Aqui está uma extensão fácil para fazer isso:
https://gist.github.com/stevenojo/0cb8afcba721838b8dcb115b846727c3
fonte
fonte