从JSON数据生成JSON模式的工具



我们有这个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模式吗?

总结其他答案,以下是目前提出的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输入)

您可能正在寻找这个:

http://www.jsonschema.net

这是一个在线工具,可以自动从JSON字符串生成JSON模式。您可以轻松地编辑模式。

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

(充分披露:我是作者)

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

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

几个月后,我得到的最好答案是我的简单工具。它是原始的,但功能。

我想要的是类似的东西。JSON数据可以为JSON模式提供一个框架。我还没有实现它,但是应该可以给出一个现有的JSON模式作为基础,以便现有的JSON模式加上JSON数据可以生成一个更新的JSON模式。如果没有这样的模式作为输入,则采用完全默认值。

这将在迭代开发中非常有用:工具第一次运行时,JSON模式是虚拟的,但它可以根据数据的演变自动改进。

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

generate-schema (NPM | Github)需要一个JSON对象从中生成模式,一个输出是JSON模式,它是用Node.js编写的,并附带一个REPL和ClI工具用于管道文件进入。

完全披露:我是作者:)

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

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

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

JSON -schema-generator是一个简洁的基于Ruby的JSON模式生成器。它同时支持JSON模式草案3和草案4。它可以作为独立的可执行文件运行,也可以嵌入到Ruby脚本中。

然后,如果需要,可以使用JSON -schema根据新生成的模式验证JSON示例。

对于支持多个输入的离线工具,目前为止我看到的最好的是https://github.com/wolverdude/GenSON/。我希望看到一个在标准输入上接受文件名的工具,因为我有数千个文件。但是,我用光了打开的文件描述符,所以请确保文件是关闭的。我还希望看到处理递归的JSON模式生成器。我现在正在从JSON对象生成Java ,希望从我的Java类转到JSON模式。这是我的GenSON脚本,如果你好奇或想找出其中的错误。

#!/bin/sh
ulimit -n 4096
rm x3d*json
cat /dev/null > x3d.json
find ~/Downloads/www.web3d.org/x3d/content/examples -name '*json' -      print| xargs node goodJSON.js | xargs python bin/genson.py -i 2 -s     x3d.json >> x3d.json
split -p '^{' x3d.json x3d.json
python bin/genson.py -i 2 -s x3d.jsonaa -s x3d.jsonab /Users/johncarlson/Downloads/www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter02-GeometryPrimitives/Box.json > x3dmerge.json 

提到了很多工具,但还有一个叫做记录的JSON模式推断器:

https://github.com/rnd0101/json_schema_inferencer

(它不是一个库或产品,而是一个Python脚本)

以通常的方式充分披露:我是作者。

对于node.js> 6.0.0,还有一个json-schema-by-example模块

相关内容

  • 没有找到相关文章

最新更新