我们有这个json模式草案。我想获得我的JSON数据的样本,并为JSON模式生成一个框架,我可以手动返工,添加像描述,要求等东西,这不能从具体的例子推断。

例如,在我的输入example.json中:

{
    "foo": "lorem", 
    "bar": "ipsum"
}

我将运行我的json_schema_generator工具,并将得到:

{ "foo": {
    "type" : "string",
    "required" : true,
    "description" : "unknown"
  },
  "bar": {
    "type" : "string",
    "required" : true,
    "description" : "unknown"
  }
}

这个例子是手动编码的,所以可能会有错误。 是否有任何工具可以帮助我转换JSON -> JSON模式?


当前回答

在https://github.com/krg7880/json-schema-generator上有一个支持json模式v4的nodejs工具

它既可以作为命令行工具,也可以作为nodejs库:

var jsonSchemaGenerator = require('json-schema-generator'),
    obj = { some: { object: true } },
    schemaObj;

schemaObj = jsonSchemaGenerator(json);

其他回答

在https://github.com/krg7880/json-schema-generator上有一个支持json模式v4的nodejs工具

它既可以作为命令行工具,也可以作为nodejs库:

var jsonSchemaGenerator = require('json-schema-generator'),
    obj = { some: { object: true } },
    schemaObj;

schemaObj = jsonSchemaGenerator(json);

GenSON (PyPI | Github)是一个JSON模式生成器,可以从多个对象生成单个模式。您还可以使用它合并模式。它是用Python编写的,并附带CLI工具。

(完全披露:我就是作者。)

看到这个问题得到了相当多的赞,我添加了新的信息(我不确定这是否是新的,但我当时找不到它)

JSON模式的家 Python JSON模式验证的实现 相关黑客新闻讨论 python中的json模式生成器,这就是我正在寻找的。

总结其他答案,以下是迄今为止提出的JSON模式生成器:

在线:

https://www.liquid-technologies.com/online-json-to-schema-converter(1个输入) http://www.jsonschema.net(1个输入) https://easy-json-schema.github.io(1个输入)

Python:

https://github.com/gonvaled/jskemator(1个输入,但允许迭代) https://github.com/perenecabuto/json_schema_generator(1个输入) https://github.com/rnd0101/json_schema_inferencer(我认为1个输入) https://pypi.python.org/pypi/genson/(多输入) https://pypi.python.org/pypi/skinfer(多输入)

NodeJS:

https://github.com/Nijikokun/generate-schema(多个输入(传递对象数组)) https://github.com/easy-json-schema/easy-json-schema(1个输入) https://github.com/aspecto-io/genson-js(多输入)

Ruby:

https://github.com/maxlinc/json-schema-generator(1个输入)

有一个python工具可以为给定的JSON生成JSON Schema: https://github.com/perenecabuto/json_schema_generator