pipr.tools
Pipes
Clean Email Strip formatting from pasted email for clean plain text Clean AI Output Clean plain text from ChatGPT or AI output Decode & Format JWT Decode a JWT and pretty-print header and payload Word Frequency Count word frequency in text

json-query Extract a value from JSON using dot/bracket path

⟐ Data
Input0 chars
Output0 chars

Flags

--path string default:

Examples

Extract a nested value from JSON

Usage
"{"data":{"users":[{"name":"Alice"},{"name":"Bob"}]}}" | json-query --path=data.users

Pull a specific field from an API response

Usage
"{"response":{"status":"ok","results":[{"id":1,"title":"Widge..." | json-query --path=response.results

Extract the database config section from a settings file

Usage
"{"config":{"database":{"host":"localhost","port":5432},"cach..." | json-query --path=config.database
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}`;
                }
            }

Also useful for