Package Exports
- json-morph
Readme
๐ฆ json-morph

Transform JSON like a boss.
Filter it. Reshape it. Clean it. Remix it. All from your terminal.
"Why mutate your JSON by hand when you can morph it like a shapeshifter?"
โจ What is json-morph?
json-morph is a command-line tool and API that helps you transform JSON data using simple, expressive flags.
- ๐ง Filter using logical expressions (
age > 18 && status == 'active') - ๐ Map keys to new paths (
user.nameโfullName) - โ Add static fields (
role:admin) - โ Remove sensitive fields (
password,secret) - ๐ Pretty-print or export to a new file
Perfect for quick one-liners, data munging, CLI pipelines, config transforms, and replacing brittle jq scripts for common tasks.
๐ Installation
npm install -g json-morph๐ ๏ธ Usage
json-morph input.json [options]Options
| Flag | Description |
|---|---|
| --map | Remap keys: "from.path:to.path" |
| --filter | Filter expression: "age > 18 && active == true" |
| --add | Add static fields: "key:value" |
| --remove | Remove fields: "password,token" |
| --preserve | Preserve all original fields (used with --map) |
| --output, -o | Output to a file |
| --pretty | Pretty-print output |
| --help | Show help |
| --version | Show version |
๐ Examples
๐งผ Filter and Clean
npx json-morph users.json \
--filter "age > 21 && active == true" \
--remove "password,internalNote" \
--output active-users.json๐ Remap Keys
npx json-morph input.json \
--map "user.name:fullName" \
--map "user.id:userId" \
--preserveโ Add Fields
npx json-morph input.json \
--add "status:active" \
--add "score:100"๐งช Combine It All
npx json-morph data.json \
--filter "score >= 80" \
--map "user.email:contact.email" \
--add "passed:true" \
--remove "debugLog" \
--pretty๐งฌ Programmatic Usage
You can also use json-morph as a library:
import { transformJson } from 'json-morph';
const data = [{ name: 'Alice', age: 25 }];
const flags = {
filter: ['age > 18'],
map: ['name:fullName'],
add: ['status:active'],
};
const output = transformJson(data, flags);
console.log(output);โก Why Use json-morph?
- โ Lightweight, dependency-free
- โ Safer and easier than writing ad hoc scripts
- โ Works with deeply nested JSON
- โ Expressive filter logic without learning jq
- โ Scriptable, composable, and fun โจ
๐ค About the Author
Built by cinfinit, a part-time JSON whisperer, full-time logic artisan, and lifelong member of the "why-is-this-API-like-this" club. Loves:
- Clean abstractions
- Messy data
- Terminal one-liners that look like sorcery When not mutating JSON structures, probably found arguing with a linter, renaming variables obsessively, or building another side project that absolutely no one asked for โ but everyone secretly needed. โIf it involves curly braces and chaos, Iโm probably interested.โ