pipr.tools

json-query

Extract a value from JSON using dot/bracket path

⟐ Data

Try it

stdin0 chars
stdout0 chars

Flags

--path string default:

Example

Extract a nested value from JSON

Usage
$ echo "{"data":{"users":[{"name":"Alice"},{"name":"Bob"}]}}" | json-query
View source
(input, opts = {}) => {
      if (!opts.path) return "Error: provide --path";
      try {
        const data = JSON.parse(input);
        const parts = opts.path.match(/[^.\[\]]+/g) || [];
        let val = data;
        for (const p of parts) {
          if (val == null) return "undefined";
          val = val[isNaN(p) ? p : parseInt(p)];
        }
        return typeof val === "object"
          ? JSON.stringify(val, null, 2)
          : String(val ?? "undefined");
      } catch (e) {
        return `Error: ${e.message}`;
      }
    }

Suggested Pipelines

Related Tools