Ir para o conteúdo
Totalmente local

JSON para struct Swift Codable

Transforme uma amostra JSON numa struct Swift que está em conformidade com Codable.

Entrada
Saída

JSON para struct Swift Codable

Cole uma amostra JSON e esta ferramenta infere a sua estrutura e gera uma struct Swift que está em conformidade com Codable, pronta para usar em projetos iOS, macOS ou Swift do lado do servidor. Objetos aninhados tornam-se suas próprias structs aninhadas, matrizes tornam-se matrizes Swift tipadas, e um valor que às vezes está ausente ou nulo torna-se uma propriedade opcional com um ponto de interrogação — assim o modelo gerado corresponde ao que a API realmente envia, não apenas a uma amostra de sorte.

As opções controlam a forma do código gerado. Escolha struct ou class para a declaração, e let ou var para mutabilidade das propriedades. Ativar CodingKeys converte chaves JSON snake_case, como user_name, na convenção camelCase do Swift e adiciona a enum CodingKeys correspondente, de modo que a descodificação ainda se alinhe com os nomes de campo originais; deixe desativado para manter as chaves JSON verbatim. O nível de acesso define se o tipo e as suas propriedades são public ou internal, datas como Date reconhece strings ISO-8601 e as escreve como Date em vez de String, e indentação permite-lhe combinar o estilo do seu projeto com 2 espaços, 4 espaços ou tabs.

Um campo que mistura tipos não relacionados numa matriz de amostra — um valor que é às vezes um número e às vezes uma string — recua para um wrapper AnyCodable pequeno que é apenas adicionado ao resultado quando é realmente necessário, de modo que a struct ainda compila em vez de adivinhar silenciosamente errado. Chaves que não são identificadores Swift válidos, incluindo emoji ou chaves começando com um dígito, são sanitizadas e mapeadas de volta através de CodingKeys automaticamente para que nada se perca.

Tudo é executado localmente no seu navegador enquanto escreve — nenhuma amostra JSON é nunca enviada ou transmitida para um servidor, o que é importante quando a amostra vem de uma resposta da API real. Copie a Swift gerada, transfira-a como ficheiro .txt, ou envie-a de volta para a entrada para refazê-la.

FAQ

Como são processados os objetos JSON aninhados?
Cada objeto aninhado torna-se a sua própria struct Swift, nomeada após a chave sob a qual apareceu, e referenciada da struct pai por tipo.
O que acontece a um campo que às vezes é nulo ou está ausente?
É gerado como uma propriedade opcional com um ponto de interrogação à frente, de modo que a descodificação nunca se bloqueia numa resposta real que a omite.
O que faz realmente a opção CodingKeys?
Quando está ativa, uma chave JSON snake_case como created_at torna-se a propriedade createdAt, e uma enum CodingKeys a mapeia de volta para descodificação. Quando está desativa, o nome da propriedade corresponde à chave JSON tão próximo quanto as regras de identificador do Swift permitem.
Pode gerar uma class em vez de uma struct?
Sim. A opção Declaration muda cada tipo gerado entre struct e class, mantendo a mesma conformidade Codable.
O meu JSON é enviado para algum lugar?
Não. A struct é gerada inteiramente no seu navegador — a amostra JSON nunca sai do seu dispositivo.