Search, filter and analyse structured data files. Supports NDJSON, JSON, JSON Lines, CSV and TSV.
Drag and drop a file onto the dropzone area, or click the dropzone / Upload button to browse. Supports NDJSON (.ndjson, .jsonl), JSON (.json), CSV (.csv) and TSV (.tsv) files. JSON files can be an array of objects, a single object, or an object containing an array of objects — the viewer will find the data automatically. Large files (multi-GB) are streamed in chunks so they won’t crash the browser. You can also drop a file anywhere on the page.
The first 12 columns are shown by default. Expand the Select Columns panel to open the column selector. Use the search box to find columns by name (tick .* for regex, e.g. address\..* to match all address sub-columns), then Show Matched / Hide Matched to toggle them in bulk. Checked columns are retained when you change the search query, so you can build up a selection across multiple searches.
Click Copy Columns to copy the list of currently visible column names to the clipboard (comma-separated).
Drag column headers left or right to reorder columns in the table. Alternatively, expand the Column Order panel to see the current column sequence and drag items to rearrange. The column order is reflected in filters, exports and saved filter sets. Newly shown columns are added at the end of the current order.
Resize columns by dragging the right edge of any column header. The table switches to a fixed layout, and columns wider than the viewport can be scrolled horizontally.
Use the Depth selector to flatten nested JSON objects. At depth 1 (default), only top-level keys are shown. At depth 2, plain objects are expanded one level using dot notation (e.g. address.city). Up to depth 5. Arrays are never flattened.
Filter inputs appear directly below each column header. Type to search — filtering is debounced so the table updates after you pause typing, and your cursor position is preserved. Searches are case-insensitive substring matches by default.
Click the ⋮ button next to any filter input to open a column context menu with:
^(?!.*TERM)), then edit the placeholder text.Multi-value fields (arrays like ["clickAndCollect","inStoreOnly"]) are searched as a comma-separated string, so searching for any individual value will match.
Click any column header to sort ascending. Click again for descending, and a third time to remove the sort. Click additional columns to add secondary, tertiary sorts etc. Sort levels are shown as numbered badges with ↑/↓ arrows. You can also control sorting from each column’s context menu, including changing the sort priority level. Sorts are preserved across filter changes and saved with filter sets.
Click Run Report in any column’s context menu (or the ≡ button if shown) to open a statistical analysis with charts: blanks, data types, value distribution, string lengths, case patterns, word counts and more. Numeric and length distributions include mean, median and mode with a bar-chart histogram (up to 10 bars). Use Save as PDF to export the analysis.
Click Show Distinct to group rows by unique combinations of the visible columns, with a count of matching rows. Sorted by count descending.
Results are paginated (default 500 per page). Use « ‹ › » to navigate between pages, or change the page size with the Per page dropdown. All exports include the full filtered dataset, not just the current page.
Use the checkboxes to select specific rows. Selections persist across filter changes, so you can filter, check rows, change the filter, and check more rows to build up a selection. The header checkbox toggles all filtered rows (not just the current page).
Click the ≡ button in the filter row’s checkbox column to open the selection context menu:
When rows are selected, all exports and reports will include only the selected rows. If nothing is selected, exports include all filtered rows.
Use Export CSV, TSV, JSON or NDJSON to download the currently filtered (and optionally selected) visible data. Export Excel opens options to include a data sheet and/or per-column statistics sheets (overview, data types, distributions, top values and more). An overall summary sheet is always included. When exporting a subset, statistics note how many rows were included out of the total.
Click PDF Report to generate a multi-attribute report across all visible columns. An options dialog lets you choose whether to include per-attribute detail sections (charts and full statistical breakdowns). The report includes:
Save named combinations of visible columns (including their order), search filters, blank filters, regex flags, sort columns, distinct mode, column search state, wrap settings, and selection view mode. Type a name and click Save to store the current view. Use the dropdown to Load or Delete saved sets. Saving with an existing name overwrites it.
Export All downloads all saved filter sets as a JSON file. Import (Merge) adds sets from a file, overwriting any with the same name. Import (Replace) replaces all saved sets with the imported file. Filter sets persist in localStorage across sessions. When loading a set, columns that don’t exist in the current dataset are silently skipped.
Customise exported filenames using the Export name field in the Filter Sets panel. Choose a common format from the Presets dropdown or type a custom template. The template supports these macros:
$filterset — current filter set name as-is (empty if none loaded)
$filterdash — filter set name with non-alphanumeric characters replaced by dashes (leading/trailing dashes removed, repeated dashes collapsed)
$file — input filename without extension
$yyyy — 4-digit year, $yy — 2-digit year
$MM — month (01–12), $dd — day (01–31)
$hh — hours (00–23), $mm — minutes (00–59), $ss — seconds (00–59)
$ext — original file extension
$remove:text — post-processing: removes all occurrences of text from the resolved filename (extends to the next $ or end of template). Useful for cleaning up empty macros, e.g. $file-$filterdash-export$remove:-- avoids a double-dash when no filter set is loaded.
Default template: $file-$yyyy-$MM-$dd--$hh-$mm-$ss. A live preview is shown next to the input. The file extension (e.g. .csv) is appended automatically. The export name template is saved as part of each filter set.