Eu tenho um dictionary
eu preciso gerar um JSON string
usando dictionary
. É possível convertê-lo? Vocês podem ajudar nisso?
ios
objective-c
json
string
ChandraSekhar
fonte
fonte
Respostas:
Aqui estão categorias para NSArray e NSDictionary para tornar isso super fácil. Eu adicionei uma opção para impressão bonita (novas linhas e guias para facilitar a leitura).
.
.
.
fonte
NSUTF8StringEncoding
é a codificação correta?NSNumber
,NSString
eNSNull
- vai descobrir em um minuto ou dois!A Apple adicionou um analisador e serializador JSON no iOS 5.0 e Mac OS X 10.7. Consulte NSJSONSerialization .
Para gerar uma sequência JSON de um NSDictionary ou NSArray, não é mais necessário importar nenhuma estrutura de terceiros.
Aqui está como fazê-lo:
fonte
NSArray
eNSDictionary
tornaria a reutilização muito mais simples.[NSJSONSerialization JSONObjectWithData:options:error:]
retorna um objeto da Foundation a partir de dados JSON fornecidosPara converter um NSDictionary em um NSString:
fonte
NOTA: Esta resposta foi dada antes do lançamento do iOS 5.
Obtenha o json-framework e faça o seguinte:
myDictionary
será o seu dicionário.fonte
Você também pode fazer isso on-the-fly inserindo o seguinte no depurador
fonte
error: use of undeclared identifier 'NSUTF8StringEncoding'
Você pode passar matriz ou dicionário. Aqui, estou usando o NSMutableDictionary.
Para gerar uma sequência JSON de um NSDictionary ou NSArray, você não precisa importar nenhuma estrutura de terceiros. Basta usar o seguinte código: -
fonte
fonte
+[NSJSONSerialization dataWithJSONObject:options:error:]: Invalid top-level type in JSON write'
erro. Usando XCode 9.0No Swift (versão 2.0) :
fonte
Agora não há necessidade de classes de terceiros que o iOS 5 introduziu Nsjsonserialization
esse código pode ser útil para obter o jsondata.
fonte
NSJSONReadingMutableLeaves | NSJSONReadingMutableContainers
.No Swift, criei a seguinte função auxiliar:
fonte
A partir da ISO7, pelo menos, você pode fazer isso facilmente com a NSJSONSerialization .
fonte
Aqui está a versão Swift 4
}
Exemplo de uso
Ou, se você tem certeza de que é um dicionário válido, pode usar
fonte
Isso funcionará em swift4 e swift5.
fonte
Este é bem parecido com o estilo de impressão Objective-C original
fonte