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

  1. Cole uma resposta representativa, incluindo registros cujos campos sejam diferentes.
  2. Revise a saída gerada e altere o nome raiz se necessário.
  3. 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.