JSON Array Pluck Field
Turn an array of objects into a single flat list: names, emails, IDs, totals, nested values, wildcard matches, or recursive JSONPath-style fields.
About this tool
JSON Array Pluck Field extracts the same key from every row in a JSON array and returns a flat list. It is useful when you have API results, export files, webhook payloads, or NDJSON logs and only need one column such as id, email, user.name, or orders.*.total.
Paste a top-level array, a wrapper object such as { "items": [...] }, NDJSON lines, or a single object. Then enter a field name or dotted path. The output can be one value per line, CSV, TSV, a JSON array that preserves number and boolean types, or a custom-delimited list.
Worked example
Input JSON:
[{"user":{"name":"Ada"},"email":"[email protected]"},{"user":{"name":"Grace"},"email":"[email protected]"}]
Field:
user.name
Output:
Ada
Grace
Use root when an API response wraps rows under a property such as data, items, or response.results. Use * to fan out arrays (orders.*.total) and ** or JSONPath-style .. to find a key at any depth (**.city).
Limits and edge cases
- Maximum input size is 5,000,000 bytes.
- Field and root paths are limited to 200 bytes each.
- At most 200,000 values are returned in one run.
- Missing fields are skipped by default; switch to empty, null, or error mode when row alignment matters.
- Object and array values are emitted as compact JSON by default; they can be labelled or skipped.
- This is not a general JSON query language. It deliberately focuses on the common "pluck one field from every row" workflow.
FAQ
Can I extract nested values?
Yes. Use dotted paths such as user.name, indexes such as tags.0 or tags[0], wildcard paths such as orders.*.total, and recursive descent such as **.city or $..city.
What if my array is inside an API response object?
Set the root array path, for example items, data.results, or response.records. If root is blank, the tool uses a top-level array as-is or the first array-valued property in a wrapper object.
How are missing or null fields handled?
The default is to skip rows where the value is missing or null. Choose empty to keep row positions with blank values, null to emit the word null, or error to stop on the first missing row and report its index.
Can I produce CSV or a quoted list?
Yes. Choose CSV or TSV for delimiter-separated output with RFC-style quoting. Turn on "Quote every text value" for SQL-style or JavaScript-style quoted lists in lines or custom-delimited output.
Developer & Automation Access
Run it from the terminal
Same engine as this page, headless — via the gizza CLI:
gizza tool json-array-pluck-field '[{"user":{"name":"Ada"},"email":"[email protected]"},{"user":{"name":"Grace"},"email":"[email protected]"}]' 'field=user.name'New to the CLI? Get gizza →
Open it by URL
Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:
https://gizza.ai/tools/json-array-pluck-field/?json=%5B%7B%22user%22%3A%7B%22name%22%3A%22Ada%22%7D%2C%22email%22%3A%22ada%40example.test%22%7D%2C%7B%22user%22%3A%7B%22name%22%3A%22Grace%22%7D%2C%22email%22%3A%22grace%40example.test%22%7D%5D&field=user.name&root=data.items&format=lines&delimiter=%20%7C%20"e=true&missing=skip&complex_values=json&unique=trueMachine-readable descriptor: tool.json — title + parameters JSON Schema for agents.
