~/tools / JSON Schema Validator
JSON Schema Validator — Confira um JSON com um JSON Schema
Confira dados JSON com um JSON Schema e veja cada problema com o caminho e a regra que falhou. Cobre as principais palavras-chave do Draft 2020-12. Útil para checar a saída estruturada de um modelo de IA. Nada sai do seu navegador.
Segue o JSON Schema Draft 2020-12 nas palavras-chave que suporta. Lê $ref apenas dentro do mesmo schema.
Tudo roda no seu navegador. O schema e os dados não são enviados.
Um JSON Schema descreve como é um JSON válido: seus tipos, propriedades obrigatórias, valores permitidos e intervalos. Esta ferramenta confere um trecho de JSON com um schema e lista todos os problemas, com a posição nos dados e a palavra-chave do schema que falhou. As APIs de IA podem restringir a resposta de um modelo a um schema, mas a resposta ainda pode ter valores errados, ser uma recusa ou vir cortada, então vale conferi-la por conta própria. As palavras-chave que a ferramenta não verifica, como format, são listadas quando o seu schema as usa, de modo que uma aprovação nunca é mais fraca do que parece.
Casos de uso
- Conferir se a saída estruturada de um modelo de IA segue o schema que você deu a ele
- Testar um schema com algumas amostras válidas e inválidas antes de usá-lo em uma API
- Descobrir qual propriedade de um documento JSON grande quebra as regras
Como usar
- Cole o schema à esquerda e os dados JSON à direita, ou carregue o exemplo.
- Leia o resultado: uma aprovação ou uma lista de problemas com o caminho nos dados e a regra que falhou.
- Veja o aviso sobre palavras-chave que não foram verificadas, se ele aparecer.
O que um schema verifica e o que não verifica
- properties verifica apenas as propriedades que estão presentes. Uma propriedade só é obrigatória se o seu nome estiver listado em required, então uma propriedade que não está listada pode estar ausente.
- additionalProperties vale para os nomes que não correspondem nem a properties nem a patternProperties. Se for omitida, propriedades extras são permitidas.
- integer corresponde a qualquer número com parte fracionária zero.
- pattern é uma expressão regular ECMA-262 e não é ancorada: o pattern b corresponde à string abc. Adicione ^ e $ quando a string inteira precisar corresponder.
- minLength e maxLength contam caracteres como a RFC 8259 os define, então um emoji conta como um.
- format é uma anotação por padrão, e verificá-lo é opcional. Esta ferramenta não o verifica e avisa quando um schema o usa.
- Palavras-chave desconhecidas são tratadas como anotações, então uma palavra-chave escrita errada, como requierd, é ignorada e não faz o schema falhar.
Arrays: 2020-12 e drafts anteriores
| Draft | Schemas para os primeiros itens | Schema para o restante |
|---|---|---|
| 2020-12 | prefixItems | items |
| draft-07 e anteriores | items como array | additionalItems |
Esta ferramenta lê as duas formas. No 2020-12, items: false ocupa o lugar de additionalItems: false.
O que os recursos de saída estruturada de IA aceitam
Cada fornecedor aceita apenas um subconjunto do JSON Schema, e os três o documentam de maneiras diferentes.
| Fornecedor | O que a documentação diz |
|---|---|
| OpenAI | A raiz deve ser um objeto. Toda propriedade deve estar listada em required (um valor opcional é escrito como um tipo que também permite null), e todo objeto precisa de additionalProperties: false. allOf, not, dependentRequired, dependentSchemas e if/then/else não são suportados. |
| Anthropic | additionalProperties deve ser false. Schemas recursivos, minimum, maximum e multipleOf, minLength e maxLength, e um minItems de array diferente de 0 ou 1 não são suportados. Um recurso não suportado retorna um erro 400. |
| Google Gemini | Apenas um subconjunto do JSON Schema é suportado. minLength, maxLength, minProperties, maxProperties, uniqueItems, contains, minContains e maxContains são removidos e ignorados em vez de gerar um erro. |
Um schema que passa neste validador ainda pode ser rejeitado, ou aplicado apenas em parte, pelo recurso de um fornecedor. Consulte a documentação do fornecedor e valide você mesmo a resposta.
Valide você mesmo a resposta
- O Google diz que a saída pode seguir o schema e mesmo assim estar errada no significado, e manda validar os valores na sua aplicação.
- A Anthropic observa que um valor de enum ou const pode voltar diferindo apenas na capitalização, sem erro.
- A OpenAI diz que uma recusa não segue necessariamente o schema e que uma resposta cortada pelo limite máximo de tokens está incompleta.
- A Anthropic diz que uma resposta cortada por max_tokens pode não corresponder ao schema. Verifique por que o modelo parou antes de fazer o parse.
Fontes (verificadas em 2026-10-23): JSON Schema 2020-12: Core / JSON Schema 2020-12: Validation / JSON Schema 2020-12: Release notes / OpenAI: Structured Outputs / Anthropic: Structured outputs / Google AI for Developers: Structured output
FAQ
Qual versão do JSON Schema ela segue?
O Draft 2020-12. Ela também lê as formas antigas de array do draft-07, em que items pode ser um array e additionalItems cobre o restante. Aceita $ref para definições dentro do mesmo schema ($defs ou definitions) e não busca schemas externos.
Quais palavras-chave ela verifica?
type, enum, const, os limites de número e de string, pattern, as palavras-chave de array (items, prefixItems, minItems, maxItems, uniqueItems, contains), as de objeto (properties, patternProperties, additionalProperties, required, propertyNames, dependentRequired e outras), allOf, anyOf, oneOf, not e if/then/else.
O que ela não verifica?
format, unevaluatedProperties, unevaluatedItems, $dynamicRef e contentMediaType não são verificados. O JSON Schema trata format como uma anotação por padrão, e verificá-lo é opcional. Quando o seu schema usa uma dessas palavras-chave, a ferramenta avisa.
Por que uma palavra-chave escrita errada não causa erro?
O JSON Schema trata palavras-chave desconhecidas como anotações, então um erro de digitação como requierd é ignorado e o schema continua passando. A ferramenta aponta um valor errado em uma palavra-chave que ela conhece, como um type que não existe, mas não tem como saber que você queria outra palavra.
Um schema que passa aqui funciona nas saídas estruturadas de um fornecedor de IA?
Não necessariamente. Cada fornecedor aceita apenas um subconjunto do JSON Schema. A OpenAI exige que toda propriedade seja required e que additionalProperties seja false, a Anthropic não aceita limites de tamanho para números ou strings, e o Gemini ignora várias palavras-chave. Veja as notas sobre os fornecedores abaixo da ferramenta.
Meus dados são enviados a um servidor?
Não. Tanto o schema quanto os dados são verificados no seu navegador.