Guide: JSON Operations & Query Tool
Back to toolWhat is this tool?
The JSON Operations & Query Tool is a browser-based utility for extracting fields, filtering JSON arrays, reshaping objects, comparing columns, finding unique values, finding duplicate values, and running quick analytics on JSON data. Paste a JSON array of objects, an API response, a converted CSV file, or any valid JSON, then run simple operations such as json.email, pick(id, name), unique(category), countBy(status), amount*2 + tax, category + owner, or unique(category+owner).
It is designed for developer workflows where you have JSON but do not want to write a script or open a spreadsheet. Use it as an online JSON query tool, JSON field extractor, JSON array filter, JSON column comparison tool, JSON dedupe tool, and lightweight JSON analytics tool. Operations run in your browser; your data is not uploaded for processing.
Supported operations
| Operation | Example | Result |
|---|---|---|
| Extract path | json.users[].email | List values from a JSON path |
| Pick fields | pick(id, name, email) | Create a smaller table |
| Filter rows | where(status == "active") | Return matching objects |
| Unique values | unique(category) | Return distinct field values |
| Duplicates | duplicates(email) | Find repeated values |
| Count by field | countBy(category) | Group and count values |
| Subtract arrays | category1 - category2 | One array of first-field values missing from the second |
| Concatenate arrays | category1 + category2 | One array containing values from both fields |
| Unique combined arrays | unique(category+owner) | Distinct values after combining two fields |
| Compose functions | unique(category) + unique(owner) | Concatenate the result of two operations |
| Sort and limit | sortBy(score desc), limit(20) | Top rows by a field |
| Flatten | flatten() | Convert nested objects into dot-path columns |
| Math | sum(amount), avg(amount), min(amount), max(amount) | Numeric summaries |
| Math formula | amount*2 + tax | Row-wise numeric results |
| Formula aggregate | sum(quantity*price) | Aggregate a calculated value |
Column compare
When JSON represents table-like data, column comparison is often the fastest way to answer questions. Use compare(left, right) to see values that appear in both fields or only one field. Use common(left, right) for shared values, uniqueLeft(left, right) for values only in the first field, uniqueRight(left, right) for values only in the second field, and different(left, right) for values not shared between the two fields.
For faster column math, use fieldA - fieldB to get one plain array of first-field values that do not exist in the second field. Use fieldA + fieldB to concatenate the two field arrays into one plain array. This is useful for category lists, tag columns, email columns, SKU columns, status columns, and CSV-to-JSON comparison work.
Operators can also compose with operations. Use unique(category) + unique(owner) to concatenate two unique lists, or unique(category+owner) to concatenate first and then return one deduplicated list.
For messy data, similar(name, displayName, 0.8) finds fuzzy matches between two columns. That is useful for spotting near-duplicate names, email aliases, company names, labels, or IDs that differ by punctuation, abbreviations, or small typos.
Autocomplete
The operation input detects the shape of your JSON and suggests fields, JSON paths, and operation snippets. Type json. to see keys such as id, email, or items[].sku. Chain multiple operations with a comma or pipe, such as where(status == "active"), pick(name, amount), limit(20). It also suggests quick actions like unique(category), countBy(status), compare(primaryEmail, backupEmail), and simple set expressions such as unique(category+owner) when those fields exist.
How to use
- Paste valid JSON into the input panel or upload a
.jsonfile. - Type an operation in the query input, or chain commands with commas, then review the final result.
- Use autocomplete to choose fields and function snippets.
- Review the result as a table, list, value, or formatted JSON.
- Copy the result, or continue in another Spoold tool such as JSON Formatter, JSON Diff, or CSV Preview.
Examples
List one field from every object
Use json.email or json.users[].email to extract a list of values from an array of objects.
Get unique categories
Use unique(category) to return distinct values. Use countBy(category) when you also want counts.
Run a numeric formula
Use amount*2 + tax to calculate a value per object. Use sum(quantity*price), avg(score*weight), or where(amount*2 + tax > 100) when you want formulas inside other operations.
Chain multiple JSON operations
Use commas or pipes between commands: where(status == "active"), pick(name, amount), sortBy(amount desc), limit(20).
Subtract one category field from another
Use category1 - category2 to return a single array with only the category1 values that do not appear in category2.
Concatenate two category fields
Use category1 + category2 to return a single array containing values from both fields, in left-then-right order.
Concatenate two operation results
Use unique(category) + unique(owner) to run both operations first, then concatenate the two resulting arrays.
Deduplicate after concatenating
Use unique(category+owner) to combine both fields and then return one unique list.
Find duplicates
Use duplicates(email), duplicates(id), or duplicates(phone) to find repeated values in one field.
Compare two JSON columns
Use compare(primaryEmail, backupEmail), common(primaryEmail, backupEmail), uniqueLeft(primaryEmail, backupEmail), or uniqueRight(primaryEmail, backupEmail).
Find similar names
Use similar(name, displayName, 0.85) to find fuzzy matches above a similarity threshold.
Build a small table
Use pick(id, name, email, status), then copy the result or switch to JSON view.
Use cases
- Extract a list of IDs, emails, names, URLs, SKUs, categories, or statuses from an API response.
- Analyze CSV-to-JSON output without opening a spreadsheet.
- Find duplicate IDs, duplicate emails, repeated product codes, or repeated labels.
- Compare two fields and find common values, left-only values, right-only values, or fuzzy matches.
- Filter JSON arrays with simple conditions before sharing or copying a smaller result.
- Flatten nested JSON objects for table export, debugging, or quick reporting.
FAQ
Can I query JSON online without writing JavaScript?
Yes. Use simple operations such as json.field, pick(name, email), unique(category), where(status == "active"), compare(left, right), amount*2 + tax, category1 - category2, category1 + category2, unique(category) + unique(owner), and unique(category+owner). The syntax is intentionally smaller than JavaScript or jq.
Can I run multiple commands in one query?
Yes. Separate top-level commands with commas or pipes. Commas inside functions still work, so pick(name, email), limit(20) chains two commands while pick(name, email) remains one command.
Can I run formulas across JSON fields?
Yes. Formulas support +, -, *, /, %, parentheses, numeric literals, and numeric fields. Use amount*2 + tax for row-wise output, sum(quantity*price) for totals, or where(quantity*price > 100) for formula-based filters.
Does it work with arrays of objects?
Yes. Arrays of objects are the main workflow. json.email extracts email from every object. pick(id, email) creates a table. countBy(status) groups rows by status.
Can I compare two columns in JSON?
Yes. Use compare(a, b) to see both, left-only, and right-only values. Use a - b for a plain array of first-field-only values, a + b for a plain concatenated array, or use common(a, b), uniqueLeft(a, b), uniqueRight(a, b), different(a, b), and similar(a, b, 0.8) for focused comparisons.
Is this the same as jq?
No. jq is a powerful command-line JSON processor. This tool is a browser-friendly JSON operations tool for common extraction, filtering, aggregation, and column comparison tasks.
Is my JSON uploaded?
No. Parsing and operations run in your browser. Share links only store data if you explicitly use the Share feature.
Related terms
Common searches for this workflow include JSON query tool, JSON operations tool, JSON field extractor, extract field from JSON array, JSON array filter online, filter JSON online, JSON unique values, find duplicates in JSON, JSON count by field, and flatten JSON online.
For table-like JSON, related terms include compare two JSON columns, find common values between two columns, find unique values between two columns, fuzzy match two columns, JSON dedupe online, CSV JSON column compare, and online JSON analytics.
Formula and aggregation searches include JSON formula tool, run formulas on JSON online, JSON field math, calculate JSON field, sum JSON array field, average JSON values, JSON group by count, JSON aggregate tool, and JSON analytics without code.
Filtering and transformation searches include query JSON array online, filter array of objects online, JSON where condition, select fields from JSON, pick JSON fields, omit JSON fields, flatten nested JSON, JSON path extractor, and JSON table query tool.
Cleanup and comparison searches include deduplicate JSON array, find duplicate values in JSON, compare JSON array fields, find missing JSON values, JSON set difference, JSON concatenate arrays, JSON fuzzy matching, API response analyzer, and client side JSON query tool.
Similar tools
Use these related tools when you need formatting, conversion, validation, or comparison:
For formatting and tree editing, open the JSON Formatter. For comparing two full JSON documents, use JSON Diff. For CSV-native filtering and column comparison, use CSV Operations. For spreadsheet-style data conversion, use CSV to JSON, where JSON Operations is also available as an integrated third panel.