Ferramenta Tool Kumar
JSON para Swift
Gere structs Swift que adotam Codable. O conversor adiciona CodingKeys quando os nomes das propriedades diferem do JSON, para que uma chave como user-id seja decodificada como userId.
Como usar esta ferramenta
- Cole uma resposta representativa, incluindo registros cujos campos sejam diferentes.
- Revise a saída gerada e altere o nome raiz se necessário.
- Copie ou baixe o código e confira se os tipos correspondem ao contrato da sua API.
Exemplo prático
Esta saída vem do conversor integrado. Os dois preços de item permitem inferir um campo de ponto flutuante. Os valores null e string de note permitem inferir um campo que aceita null.
Entrada
{
"user-id": 42,
"profile": {
"city": "London",
"created_at": "2026-10-14T09:00:00Z"
},
"items": [
{
"price": 12,
"note": null
},
{
"price": 12.5,
"note": "gift"
}
]
}Saída
import Foundation
struct Root: Codable {
let userId: Int
let profile: Profile
let items: [Item]
enum CodingKeys: String, CodingKey {
case userId = "user-id"
case profile, items
}
}
struct Profile: Codable {
let city: String
let createdAt: String
enum CodingKeys: String, CodingKey {
case city
case createdAt = "created_at"
}
}
struct Item: Codable {
let price: Double
let note: String?
}
Decodifique com JSONDecoder
Use JSONDecoder com a struct Root gerada. Codable também permite codificar o mesmo modelo com JSONEncoder.
Mantenha a estratégia padrão de chaves para esta saída. CodingKeys já contém os nomes usados no JSON, incluindo created_at.
let model = try JSONDecoder().decode(Root.self, from: responseData)
let encoded = try JSONEncoder().encode(model)Opções e casos especiais
- Inteiros são inferidos como Int, valores fracionários como Double e inteiros fora do intervalo de 64 bits com sinal como Decimal. Confira os limites da plataforma de destino e a precisão decimal.
- Valores null ou campos ausentes viram propriedades opcionais. Uma estrutura observada apenas como null ou com tipos mistos usa o auxiliar JSONValue gerado quando necessário.
- JSONValue armazena números como Double. Use tipos explícitos para valores monetários exatos ou IDs muito grandes.
- Strings de data continuam sendo String. Se você mudar um campo para Date, configure JSONDecoder.dateDecodingStrategy para o formato da API.
Privado por padrão
Seu documento fica neste navegador. O Tool Kumar analisa, converte e cria downloads no seu dispositivo, sem conta e sem envio ao servidor.
JSON para Swift: perguntas frequentes
- Ele gera classes ou structs?
- Structs que adotam Codable, com propriedades let e tipos de modelo aninhados. Ele importa Foundation.
- Quando ele adiciona CodingKeys?
- Quando o nome de uma propriedade muda, ele gera um enum CodingKeys que mapeia os identificadores Swift para as chaves JSON originais.
- Como ele trata null?
- Valores null observados e campos ausentes produzem propriedades opcionais. Valores desconhecidos ou de tipos mistos usam um enum JSONValue que adota Codable, adicionado somente quando referenciado.
- Posso usar JSONDecoder diretamente?
- Sim. Copie as structs geradas para o seu projeto e decodifique Root.self a partir de Data. Revise os campos opcionais e os tipos de data primeiro.
Ferramentas relacionadas
JSON para Dart, JSON para Kotlin data class e Gerador de JSON Schema.