json-query Extract a value from JSON using dot/bracket path
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}`;
}
}