Flatten nested JSON to dot-notation paths
⟐ DataFlatten nested JSON to dot-notation
$ echo "{"user":{"name":"Alice","address":{"city":"Paris"}},"tags":[..." | json-flatten (input, opts = {}) => {
try {
const sep = opts.separator ?? " = ";
const result = [];
const flatten = (obj, prefix) => {
for (const [k, v] of Object.entries(obj)) {
const path = prefix ? `${prefix}.${k}` : k;
if (v && typeof v === "object") flatten(v, path);
else result.push(`${path}${sep}${v}`);
}
};
flatten(JSON.parse(input), "");
return result.join("\n");
} catch (e) {
return `Error: ${e.message}`;
}
}