Programing

JSON 데이터에서 JSON 스키마를 생성하는 도구

lottogame 2020. 6. 1. 07:39
반응형

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 스키마에 도움이 될 수있는 도구가 있습니까?


당신은 이것을 찾고있을 것입니다 :

http://www.jsonschema.net

JSON 문자열에서 JSON 스키마를 자동으로 생성 할 수있는 온라인 도구입니다. 스키마를 쉽게 편집 할 수 있습니다.


다른 답변을 요약하면 지금까지 제안 된 JSON 스키마 생성기가 있습니다.

온라인 :

파이썬 :

NodeJS :

루비:


이 질문이 상당히 많은 찬사를 받고 있음을 알면서 새로운 정보를 추가합니다 (이것이 새로운 것인지 확실하지 않지만 당시에는 찾을 수 없었습니다)


GenSON ( PyPI | Github )은 여러 객체에서 단일 스키마를 생성 할 수있는 새로운 JSON 스키마 생성기입니다. 스키마를 병합 할 수도 있습니다. Python으로 작성되었으며 CLI 도구와 함께 제공됩니다.

(전체 공개 : 저는 저자입니다.)


몇 달 후, 가장 좋은 대답은 간단한 도구입니다. 원시이지만 기능적입니다.

내가 원하는 것은 이것 과 비슷한 것 입니다. JSON 데이터는 JSON 스키마에 대한 골격을 제공 할 수 있습니다. 아직 구현하지는 않았지만 기존 JSON 스키마와 JSON 데이터가 업데이트 된 JSON 스키마를 생성 할 수 있도록 기존 JSON 스키마를 기본으로 제공 할 수 있어야합니다. 이러한 스키마가 입력으로 제공되지 않으면 완전히 기본값이 사용됩니다.

이는 반복 개발에 매우 ​​유용합니다. 도구를 처음 실행할 때 JSON 스키마가 더미이지만 데이터의 진화에 따라 자동으로 구체화 될 수 있습니다.


지정된 JSON에 대해 JSON 스키마를 생성하는 Python 도구가 있습니다. https://github.com/perenecabuto/json_schema_generator


generate-schema (NPM | Github) takes a JSON Object generates schemas from it, one output is JSON Schema, it's written in Node.js and comes with a REPL and ClI tool for piping files into.

Full Disclosure: I'm the author :)


There's a nodejs tool which supports json schema v4 at https://github.com/krg7880/json-schema-generator

It works either as a command line tool, or as a nodejs library:

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

schemaObj = jsonSchemaGenerator(json);

json-schema-generator is a neat Ruby based JSON schema generator. It supports both draft 3 and 4 of the JSON schema. It can be run as a standalone executable, or it can be embedded inside of a Ruby script.

Then you can use json-schema to validate JSON samples against your newly generated schema if you want.


There are a lot of tools mentioned, but one more called JSON Schema inferencer for the record:

https://github.com/rnd0101/json_schema_inferencer

(it's not a library or a product, but a Python script)

With the usual Full Disclosure: I am the author.


For the offline tools that support multiple inputs, the best I've seen so far is https://github.com/wolverdude/GenSON/ I'd like to see a tool that takes filenames on standard input because I have thousands of files. However, I run out of open file descriptors, so make sure the files are closed. I'd also like to see JSON Schema generators that handle recursion. I am now working on generating Java classes from JSON objects in hopes of going to JSON Schema from my Java classes. Here is my GenSON script if you are curious or want to identify bugs in it.

#!/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 

For node.js > 6.0.0 there is also the json-schema-by-example module.

참고URL : https://stackoverflow.com/questions/7341537/tool-to-generate-json-schema-from-json-data

반응형