jtv is a command line utility which allows you to visualise JSON and YAML schemas as text trees. It may be used as a complement to jq
, to facilitate the interpretation of a JSON schema, prior to defining filters.
$ pip install --upgrade pip
$ pip install jtv
To show the help use jtv -h
Arrays may contain objects with different schemas. By default, or using the option --mode distinct
will wrap all objects in a new object with the node key specifying a schema version. The appended ◎-schema-0
node does not exist in the JSON and is strictly used to differentiate between different object schemas.
$ echo '[{"0": {"00": [{"000": "", "001": true, "002": []}, {"NEW": {"A": 2}}]}, "1": {"10": []}}, {"A": {"r": []}}]' | jtv -j --mode distinct
To display all the nodes from each distinct object under a single object, use --mode union
.
$ echo '[{"0": {"00": [{"000": "", "001": true, "002": []}, {"NEW": {"A": 2}}]}, "1": {"10": []}}, {"A": {"r": []}}]' | jtv -j --mode union
To display only the schema of the first object use --mode first
.
$ echo '[{"0": {"00": [{"000": "", "001": true, "002": []}, {"NEW": {"A": 2}}]}, "1": {"10": []}}, {"A": {"r": []}}]' | jtv -j --mode first
To visualise JSON schemas, as above, use the -j
flag. To visualise YAML schema use the -y
flag.
$ cat .yml | jtv -y
Run tox
in the root project directory.
Increment version:
bumpver update --minor