{"id":25238002,"url":"https://github.com/vspaz/jsondiff","last_synced_at":"2026-02-02T09:16:58.654Z","repository":{"id":152011582,"uuid":"170688472","full_name":"vspaz/jsondiff","owner":"vspaz","description":"jsondiff is a json diff utility. It can compare two JSON files, using strings, prefixes, or regex to filter required/optional fields, and apply relative or absolute precision tolerance per each numeric field or globally; prints the diff between 2 json files. It can optionally accept a config with required or optional fields.","archived":false,"fork":false,"pushed_at":"2024-12-26T23:29:36.000Z","size":125,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-02T04:23:32.889Z","etag":null,"topics":["comparison-tool","cython","diff","filter","json-compare","json-comparison","jsondiff","jsondiffviewer","precision","python","python3","regex","tolerance"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vspaz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-02-14T12:33:42.000Z","updated_at":"2024-12-30T22:24:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"d570461e-cdc1-493f-b6ad-21c8785c773c","html_url":"https://github.com/vspaz/jsondiff","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/vspaz/jsondiff","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vspaz%2Fjsondiff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vspaz%2Fjsondiff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vspaz%2Fjsondiff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vspaz%2Fjsondiff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vspaz","download_url":"https://codeload.github.com/vspaz/jsondiff/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vspaz%2Fjsondiff/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263795127,"owners_count":23512647,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["comparison-tool","cython","diff","filter","json-compare","json-comparison","jsondiff","jsondiffviewer","precision","python","python3","regex","tolerance"],"created_at":"2025-02-11T16:03:06.974Z","updated_at":"2026-02-02T09:16:58.613Z","avatar_url":"https://github.com/vspaz.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jsondiff\nyet another jsondiff utility helpful for data analysis.\n\nunlike other json diff utilities:\n\n* it's possible to **skip the fields** that you are not interesting for analysis.\n* one can choose only required fields\n* the jsondiff utility compares numeric values using relative or absolute **precision tolerance** e.g. `1e-03` or `0.001`, which can be set globally or per field.\n* it's possible to use field **prefixes** or **regexes** to filter out fields.\n* there's an **optional** config (see below) when dealing with a large number of fields.\n* jsondiff requires no 3d party modules.\n\n**NOTE**: there's also an experimental WIP version implemented in C \u0026 Cython.\n\n### install\n\n```shell\ngit clone git@github.com:vspaz/jsondiff.git\ncd jsondiff\npython3 setup.py install\n```\n\n### config (optional)\n\n```json\n{\n  \"required\": [],\n  \"skipped\": [\n    \"barbaz\"\n  ],\n  \"tolerance\": {\n    \"default\": 1e-09,\n    \"fields\": {\n      \"foo\": 0.01,\n      \"baz\": 0.1\n    }\n  }\n}\n```\n\n```shell\njsondiff -f1 tests/data/file_1.json -f2 tests/data/file_2.json -c tests/data/config.json  # -\u003e {}, as field \"barbaz\" is skipped in the config.\n```\n\nor\n```shell\njsondiff -f1 tests/data/file_1.json -f2 tests/data/file_2.json  #  -\u003e {'baz': {'barbaz': [90, 80]}}  # no fields are skipped\n```\n\n### run tests\n```shell\ngit clone git@github.com:vspaz/jsondiff.git\ncd jsondiff\npip install -r requirements/dev.txt\nmake test\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvspaz%2Fjsondiff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvspaz%2Fjsondiff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvspaz%2Fjsondiff/lists"}