Temos este rascunho de esquema json . Gostaria de obter uma amostra dos meus dados JSON e gerar um esqueleto para o esquema JSON, que eu possa refazer manualmente, adicionando itens como descrição, obrigatório, etc., que não podem ser inferidos a partir de exemplos específicos.
Por exemplo, da minha entrada example.json
:
{
"foo": "lorem",
"bar": "ipsum"
}
Eu executaria minha ferramenta json_schema_generator e obteria:
{ "foo": {
"type" : "string",
"required" : true,
"description" : "unknown"
},
"bar": {
"type" : "string",
"required" : true,
"description" : "unknown"
}
}
Este exemplo foi codificado manualmente, portanto, talvez haja erros. Existe alguma ferramenta por aí que possa me ajudar com o esquema de conversão JSON -> JSON?
json
validation
reflection
jsonschema
blueFast
fonte
fonte
Respostas:
Você pode estar procurando por isso:
http://www.jsonschema.net
É uma ferramenta online que pode gerar automaticamente o esquema JSON a partir da string JSON. E você pode editar o esquema facilmente.
fonte
{"hello": "world","num": 42}
, mas parece promising-Resumindo as outras respostas, aqui estão os geradores de esquema JSON propostos até agora:
Conectados:
Pitão:
NodeJS:
Rubi:
fonte
setup.py
GenSON ( PyPI | Github ) é um gerador de esquema JSON que pode gerar um único esquema a partir de vários objetos. Você também pode mesclar esquemas com ele. Está escrito em Python e vem com uma ferramenta CLI.
(Divulgação completa: sou o autor.)
fonte
Como essa pergunta está recebendo votos positivos, adiciono novas informações (não tenho certeza se são novas, mas não consegui encontrá-las no momento)
fonte
Depois de vários meses, a melhor resposta que tenho é minha ferramenta simples. É cru, mas funcional.
O que eu quero é algo semelhante a isso . Os dados JSON podem fornecer um esqueleto para o esquema JSON. Ainda não o implementei, mas deve ser possível fornecer um esquema JSON existente como base, para que o esquema JSON existente mais os dados JSON possam gerar um esquema JSON atualizado. Se nenhum esquema desse tipo for fornecido como entrada, serão adotados valores completamente padrão.
Isso seria muito útil no desenvolvimento iterativo: na primeira vez em que a ferramenta é executada, o esquema JSON é fictício, mas pode ser refinado automaticamente de acordo com a evolução dos dados.
fonte
Há uma ferramenta python para gerar o esquema JSON para um determinado JSON: https://github.com/perenecabuto/json_schema_generator
fonte
draft-03
.generate-schema
( NPM | Github ) pega um objeto JSON gera esquemas a partir dele, uma saída é JSON Schema, é escrita no Node.js e vem com uma ferramenta REPL e ClI para a inserção de arquivos.Divulgação completa: Eu sou o autor :)
fonte
Há uma ferramenta nodejs que suporta json schema v4 em https://github.com/krg7880/json-schema-generator
Funciona como uma ferramenta de linha de comando ou como uma biblioteca nodejs:
fonte
json-schema-generator é um gerador de esquema JSON baseado em Ruby. Ele suporta os rascunhos 3 e 4 do esquema JSON. Ele pode ser executado como um executável independente ou pode ser incorporado dentro de um script Ruby.
Em seguida, você pode usar o json-schema para validar amostras JSON em relação ao seu esquema recém-gerado, se desejar.
fonte
Para as ferramentas offline que suportam várias entradas, o melhor que eu vi até agora é https://github.com/wolverdude/GenSON/ Gostaria de ver uma ferramenta que leva nomes de arquivos na entrada padrão, porque tenho milhares de arquivos . No entanto, os descritores de arquivos abertos acabam, portanto, verifique se os arquivos estão fechados . Eu também gostaria de ver geradores JSON Schema que lidam com recursão. Agora estou trabalhando na geração de classes Java a partir de objetos JSON na esperança de acessar o esquema JSON das minhas classes Java. Aqui está o meu script GenSON se você estiver curioso ou quiser identificar erros nele.
fonte
Existem muitas ferramentas mencionadas, mas mais uma chamada inferencial de esquema JSON para o registro:
https://github.com/rnd0101/json_schema_inferencer
(não é uma biblioteca ou um produto, mas um script Python)
Com a habitual divulgação completa: sou o autor.
fonte
Para node.js> 6.0.0, há também o módulo json-schema-by-example .
fonte