Skip to main content

IN SHORT

jsonfromschema is used to generate JSON data (file .json) from JSON Schema (.json, see https://json-schema.org) Project is written in Python for Python purposes, but it is also stand-alone tool.

SPDX-License-Identifier: 0BSD

Project name: jsonfromschema License: 0BSD / Free Public License 1.0.0 More information about license: https://opensource.org/licenses/0BSD

NON-INSTALL

git clone git@github.com:NIC-MichalLabedzki/jsonfromschema.git

You can run it from sources without any dependancies* (python and some modules delivered with it)

python ./jsonfromschema

See:

python ./jsonfromschema --help

See CLI section for more details.

INSTALLATION

pip install jsonfromschema

or

pip install -e git@github.com:NIC-MichalLabedzki/jsonfromschema.git

or

pip install -e https://github.com/NIC-MichalLabedzki/jsonfromschema.git

or

git clone git@github.com:NIC-MichalLabedzki/jsonfromschema.git
cd jsonfromschema
python setup.py # or pip install -e .

INTERFACE

There are two kind of interfaces: CLI and Python module.

CLI

CLI is Command Line Interface. So you have tool called: jsonfromschema

$ jsonfromschema --help
usage: jsonfromschema [-h] [-v] [-w [VALIDATE]] [--no-default] [--no-examples] [--maximum]
         [--subschema SUBSCHEMA] [--from-python-package FROM_PYTHON_PACKAGE]
         schema output

Generate JSON data file (*.json) from JSON Schema

positional arguments:
schema                path to JSON Schema file or python packages resource
                        [--from-python-package]
output                path to JSON data output file

optional arguments:
-h, --help            show this help message and exit
-v, --verbose         verbose mode
-w [VALIDATE], --validate [VALIDATE]
                        use jsonschema to validate output and check if schema
                        is valid [3,4,6,7 (default)]
--no-default          do not use 'default' fields in jsonschema
--no-examples         do not use 'default' fields in jsonschema
--maximum             generate as complex json as possible (by
                        implementation); for example ignore "required" and
                        favor "object" over less complicated fields
--subschema SUBSCHEMA
                        extract subschema only by this json fragment pointer
--from-python-package FROM_PYTHON_PACKAGE
                        'schema' is path to python package resource, this
                        option needs package name as argument

Some examples:

$ jsonfromschema input_schema.json output_json_data.json

Verbose:

$ jsonfromschema input_schema.json output_json_data.json -v

Validate output: It use “jsonschema” module (pip install jsonschema) to validate output json to be valid with given schema.

$ jsonfromschema input_schema.json output_json_data.json -w

Generate subschema: Use JSON pointer (schema side) to generate only part of schema:

$ jsonfromschema tests/test_schema_main.json.json output.json -w --subschema=/properties/string_default
$ cat output.json
"foo"

Use JSON Schema resources from some python packages:

$ jsonfromschema ../tests/test_schema_main.json output.json -vw --subschema=/properties/string_default --from-python-package jsonfromschema
$ cat output.json
"foo"

Python Module

API is not stable right now.

import jsonfromschema.lib
generate_dict_from_text(root_name, schema_text, optional_args=None)
generate_dict_from_file(schema_file, optional_args=None)
generate_dict_from_package(package, path, optional_args=None)
optional_args:

Default values are:

{
'verbose': False,
'no-default': False,
'no-examples': False,
'maximum': False,
'pkg_resource_root': None,
'subschema': None,
}
Where:

pkg_resource_root is package name, for example “jsonschema”

Changelog

v0.1.4:
  1. try use –maximum value for more json types

  2. remove anoying python version from cli output

TODO

  1. JsonSchema Draft-7 support (in progress)

  2. Check Draft-4 support

  3. Section about Contributions

Metadata

Release files for jsonfromschema 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jsonfromschema 0.1.4
File Size Uploaded
jsonfromschema-0.1.4.tar.gz 12.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jsonfromschema 0.1.4
File Interpreter ABI Platform
jsonfromschema-0.1.4-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 22.7 kB

Release files / jsonfromschema-0.1.4.tar.gz

Download URL jsonfromschema-0.1.4.tar.gz
Size 12.0 kB
Tags Source
SHA-256 checksum
How to use checksums
88fda249008c161821a59e3a9908215281f3a63c39fec0ed5e9bcc3dd80308bc
BLAKE2b-256 checksum
How to use checksums
4f3c0c7e0d8bc922e24dad1bce8d9ac51704b270828753843f106b603abb487c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.5

Release files / jsonfromschema-0.1.4-py2.py3-none-any.whl

Download URL jsonfromschema-0.1.4-py2.py3-none-any.whl
Size 10.7 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
cb5cec7eba45120e7c783244ab59152529d316818c0b4b73cd18ed488f24b1b5
BLAKE2b-256 checksum
How to use checksums
fa073dd8398814f56add6797b960dc571e759ebf0600ac89223737cb85747245
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.5

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page