JSON flatten/unflatten
POST /api/json-flattenFlatten nested JSON to dot-path keys, or unflatten dot-path keys back to nested JSON. mode: flatten (default) | unflatten.
Input
| Field | Type | Description |
|---|---|---|
json * | any | JSON value |
mode | string | flatten | unflatten |
Example output
{
"result": {
"a.b": 1
}
}
Try it - see the 402 challenge (free)
curl -i -X POST https://agent402.tools/api/json-flatten \
-H "Content-Type: application/json" \
-d '{"json":{"a":{"b":1}},"mode":"flatten"}'
The response is HTTP 402 Payment Required with exact payment requirements. Any x402 v2 client pays automatically and retries:
Paid call (JavaScript agent)
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/api/json-flatten", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"json": {
"a": {
"b": 1
}
},
"mode": "flatten"
}),
});
No wallet? Pay with compute
This is a pure-CPU tool, so an agent without a wallet can pay with proof-of-work instead of USDC: fetch a challenge, solve the sha256 puzzle (16 leading zero bits - a fraction of a second of CPU, no money, no AI tokens), and resend with the X-Pow-Solution header.
import { createHash } from "node:crypto";
const lz = (b) => { let t = 0; for (const x of b) { if (!x) { t += 8; continue; } t += Math.clz32(x) - 24; break; } return t; };
const c = await (await fetch("https://agent402.tools/api/pow/challenge?slug=json-flatten")).json();
let n = 0;
while (lz(createHash("sha256").update(c.challenge + ":" + n).digest()) < c.difficulty) n++;
await fetch("https://agent402.tools/api/json-flatten", { method: "POST", headers: { "X-Pow-Solution": c.token + ":" + n, "Content-Type": "application/json" }, body: JSON.stringify({"json":{"a":{"b":1}},"mode":"flatten"}) });
Part of these workflows
This tool is one step in a curated multi-tool workflow - agents can fetch the whole sequence as an MCP prompt or call https://agent402.tools/api/skill-packs/{slug}/prompt.
- Data interchange - Bring data in from any structured format, normalize through JSON as the universal pivot, merge with overrides, audit the diff, flatten for downstream systems, and emit to whatever format the next stage actually consumes - CSV for spreadsheets, YAML for config systems, JSON for everything else. The deterministic universal-format-bridge workflow.
Related tools
JSON validate & format
POST /api/json-formatValidate, pretty-print, or minify JSON. Returns parse errors with position when invalid.
JSON to CSV
POST /api/json-to-csvConvert a JSON array of objects to CSV. Nested objects are flattened to dot-path columns.
CSV to JSON
POST /api/csv-to-jsonParse CSV (quoted fields supported) into a JSON array of objects, using the first row as headers (header=false for array…