Generate consistent hashable JSON payload, great for piping through hash functions.
- sort arrays by predefined keys
- sort object by keys (optional)
- works as command line tool, module and in browser
- supports in-place modification of JSON file
- great for storing JSON in Git
Try it in the browser at https://chernjie.github.io/hashable/
npm i -g hashable-cli
cat file.json | npx hashable-cli > sorted.json
npx hashable-cli file.json > sorted.json
npx hashable-cli --in-place file.json
npx hashable-cli --priority=id,label file.json
npm i --save hashable-cli
import hashable from 'hashable-cli'
import md5 from "md5"
const sorted1 = hashable({ a: 'b', c: ['e', 'd']}, { sortObject: true })
const sorted2 = hashable({ c: ['d', 'e'], a: 'b'}, { sortObject: true })
const hash1 = md5(JSON.stringify(sorted1))
const hash2 = md5(JSON.stringify(sorted2))
return hash1 === hash2
Command Line | Module | Default | Description |
---|---|---|---|
--in-place |
N/A | false |
to overwrite the original JSON file |
--sort-object |
sortObject |
false |
to sort object keys. |
--priority |
priority |
see priority | to specify array sorting priority (default priority is used if not specified). In CLI-mode, use comma-separated strings to specify multiple sort keys. e.g. --priority=id,label |
see LICENSE
- safe-stable-stringify - Safe, deterministic and fast serialization alternative to
JSON.stringify
. Zero dependencies. ESM and CJS. 100% coverage.
- json-stable-stringify - deterministic version of
JSON.stringify()
so you can get a consistent hash from stringified results
- fast-json-stable-stringify - Deterministic
JSON.stringify()
- a faster version of @substack'sjson-stable-strigify
withoutjsonify
.
- fast-safe-stringify - Safe and fast serialization alternative to
JSON.stringify
.
- sort-keys - Useful to get a deterministically ordered object, as the order of keys can vary between engines.
- fast-stable-stringify - faster
json-stable-stringify
- json-hash - Generates hash for JSON objects.
- fastest-stable-stringify - Deterministic
JSON.stringify()
- fastest stable JSON stringifier. This project combinesfast-json-stable-stringify
andfast-stable-stringify
to create the fastest stable JSON stringifier
- json-hashable - sorts object keys only, arrays remain the same. Returns a hash but no longer a strict equal of the input payload