@lxgicstudios/jsonmorph
v1.0.0
Published
Transform JSON like a pro. Query, reshape, flatten, diff, and convert JSON data. jq alternative for Node.
Maintainers
Readme
jsonmorph
Transform JSON like a pro. Query, reshape, flatten, diff, and convert JSON data. A jq alternative for Node.
Installation
npm install -g @lxgicstudios/jsonmorphOr use directly:
npx @lxgicstudios/jsonmorph query data.json ".users[*].name"Commands
Query with path expressions
# Get nested value
jsonmorph query data.json ".config.database.host"
# Get all items in array
jsonmorph query data.json ".users[*].name"
# Get specific index
jsonmorph query data.json ".items[0]"
# Deep search (find key anywhere)
jsonmorph query data.json "..email"Flatten / Unflatten
# Flatten nested object to dot notation
jsonmorph flatten nested.json
# { "user.name": "John", "user.address.city": "NYC" }
# Unflatten back to nested
jsonmorph unflatten flat.jsonDiff two files
jsonmorph diff old.json new.jsonOutput:
+ Added:
users[2].name
- Removed:
config.debug
~ Changed:
version: "1.0.0" → "2.0.0"Merge files
jsonmorph merge base.json overrides.json -o merged.jsonPick / Omit keys
# Keep only specific keys
jsonmorph pick user.json name email
# Remove specific keys
jsonmorph omit user.json password ssnTransform structure
# Rename keys
jsonmorph transform data.json "id:_id,name:title"Validate against schema
jsonmorph validate data.json schema.jsonMinify / Prettify
jsonmorph minify data.json -o data.min.json
jsonmorph prettify data.min.jsonPath Syntax
| Syntax | Description |
|--------|-------------|
| .key | Access object property |
| [0] | Access array index |
| [*] | All array elements |
| ..key | Deep search for key |
Programmatic Usage
const { query, flatten, diff, merge } = require('@lxgicstudios/jsonmorph');
// Query
const names = query(data, '.users[*].name');
// Flatten
const flat = flatten({ user: { name: 'John' } });
// { 'user.name': 'John' }
// Diff
const changes = diff(oldData, newData);
// Merge
const merged = merge(defaults, userConfig);Why jsonmorph?
- Zero dependencies - Pure JavaScript
- Intuitive syntax - Similar to jq but simpler
- Powerful diffing - See exactly what changed
- Schema validation - Catch errors early
Built by LXGIC Studios
