pipr.tools

json-flatten

Flatten nested JSON to dot-notation paths

⟐ Data

Try it

stdin0 chars
stdout0 chars

Flags

--separator string default: =

Example

Flatten nested JSON to dot-notation

Usage
$ echo "{"user":{"name":"Alice","address":{"city":"Paris"}},"tags":[..." | json-flatten
View source
(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}`;
      }
    }

Suggested Pipelines

Related Tools