Commandline Utilities ===================== The JSON patch package contains the commandline utilities ``jsondiff`` and ``jsonpatch``. ``jsondiff`` ------------ The program ``jsondiff`` can be used to create a JSON patch by comparing two JSON files :: usage: jsondiff [-h] [--indent INDENT] [-v] FILE1 FILE2 Diff two JSON files positional arguments: FILE1 FILE2 optional arguments: -h, --help show this help message and exit --indent INDENT Indent output by n spaces -v, --version show program's version number and exit Example ^^^^^^^ .. code-block:: bash # inspect JSON files $ cat a.json { "a": [1, 2], "b": 0 } $ cat b.json { "a": [1, 2, 3], "c": 100 } # show patch in "dense" representation $ jsondiff a.json b.json [{"path": "/a/2", "value": 3, "op": "add"}, {"path": "/b", "op": "remove"}, {"path": "/c", "value": 100, "op": "add"}] # show patch with some indentation $ jsondiff a.json b.json --indent=2 [ { "path": "/a/2", "value": 3, "op": "add" }, { "path": "/b", "op": "remove" }, { "path": "/c", "value": 100, "op": "add" } ] ``jsonpatch`` ------------- The program ``jsonpatch`` is used to apply JSON patches on JSON files. :: usage: jsonpatch [-h] [--indent INDENT] [-v] ORIGINAL PATCH Apply a JSON patch on a JSON files positional arguments: ORIGINAL Original file PATCH Patch file optional arguments: -h, --help show this help message and exit --indent INDENT Indent output by n spaces -b, --backup Back up ORIGINAL if modifying in-place -i, --in-place Modify ORIGINAL in-place instead of to stdout -v, --version show program's version number and exit -u, --preserve-unicode Output Unicode character as-is without using Code Point Example ^^^^^^^ .. code-block:: bash # create a patch $ jsondiff a.json b.json > patch.json # show the result after applying a patch $ jsonpatch a.json patch.json {"a": [1, 2, 3], "c": 100} $ jsonpatch a.json patch.json --indent=2 { "a": [ 1, 2, 3 ], "c": 100 } # pipe result into new file $ jsonpatch a.json patch.json --indent=2 > c.json # c.json now equals b.json $ jsondiff b.json c.json []