{}JSONLint.app

Paste your JSON below to view it as a table:

Loading...
Click "Convert to Table" to preview

View JSON as a Table

This tool converts JSON arrays into a visual HTML table format. It's the fastest way to preview JSON data in a readable, spreadsheet-like view without leaving your browser.

Supported JSON Structures

The tool works best with arrays of objects:

[
  { "name": "Alice", "age": 30 },
  { "name": "Bob", "age": 25 }
]

Or an object containing an array:

{
  "users": [
    { "name": "Alice", "age": 30 },
    { "name": "Bob", "age": 25 }
  ]
}

Features

  • Auto-detect arrays — Finds the first array in your JSON
  • Merged columns — Handles objects with different fields
  • Type highlighting — Booleans, nulls, and objects are color-coded
  • HTML export — Copy as HTML table for use in documents

Common Use Cases

  • API response inspection — Quickly visualize API data
  • Data validation — Check data structure at a glance
  • Documentation — Generate tables for documentation
  • Debugging — Easier than reading raw JSON

Handling Special Values

JSON ValueTable Display
nullnull (grayed)
truetrue (green)
falsefalse (red)
Nested objects{...} (truncated)

HTML Export

Click "Copy HTML" to get a clean HTML table you can paste into:

  • Confluence or wiki pages
  • Email clients
  • HTML documents
  • CMS platforms

Programmatic Conversion

JavaScript

function jsonToHtmlTable(data) {
  if (!Array.isArray(data) || data.length === 0) return '';
  
  const headers = Object.keys(data[0]);
  const headerRow = headers.map(h => `<th>${h}</th>`).join('');
  
  const bodyRows = data.map(row => 
    `<tr>${headers.map(h => `<td>${row[h] ?? ''}</td>`).join('')}</tr>`
  ).join('');
  
  return `<table><thead><tr>${headerRow}</tr></thead><tbody>${bodyRows}</tbody></table>`;
}

Python

import json
import pandas as pd

# Read JSON and convert to HTML table
data = json.loads(json_string)
df = pd.DataFrame(data)
html_table = df.to_html(index=False)

Pro Tips

  • 💡 Large datasets — For very large arrays, the table might be slow. Consider paginating or filtering first.
  • 💡 Nested data — For deeply nested JSON, useJSON Flatten first.
  • 💡 Export to spreadsheet — Use JSON to CSV for Excel or Google Sheets.

Related Tools

Common Mistakes & Pro Tips

  • Rendering is for viewing — copy or export to keep the dataA visual HTML table is a way to inspect JSON, not a file format, so the value lives in the page rather than on disk. To reuse it, copy the table into a spreadsheet (which pastes as rows and columns) or use a dedicated CSV/Excel export. Don't expect the rendered view alone to persist your data.
  • Nested objects and arrays render as sub-tables or stringified textUnlike CSV, an HTML table can nest, so a converter may render a nested object or array as a collapsible sub-table inside a cell rather than flattening it. Other tools stringify the nested value as JSON text in the cell. Knowing which approach is used tells you whether deep structures stay explorable or get collapsed to one line.
  • Columns are the union of keys; ragged data leaves blank cellsWhen rows have different keys, the table shows the union of all keys as columns and leaves a cell blank wherever a row lacks that key. This makes inconsistent schemas easy to spot at a glance — gaps in a column reveal which records are missing a field. A converter that uses only the first row's keys would hide those extra fields.
  • HTML-escape values to avoid broken layout or injected markupValues containing <, >, or & must be HTML-escaped before insertion, both so they display literally and so a string like <img onerror=...> can't execute as markup in the page. A safe renderer entity-encodes these characters. This matters most when the JSON comes from an untrusted source and is shown in a browser.
  • Large arrays can freeze the page without virtualizationRendering tens of thousands of rows as real DOM nodes is slow and can hang the browser, since each cell is an element. Tools that handle big data either paginate, virtualize (render only visible rows), or cap the row count. If a large file makes the page unresponsive, slice the JSON or use a streaming/export path instead of full render.

Frequently Asked Questions

How do I view JSON as a table?

Paste your JSON and the tool renders an HTML table where each object in the array is a row and each key is a column. The header comes from the union of all keys, so every field appears even if some records omit it. This gives a quick, readable view of array-of-object data without importing it into a spreadsheet.

How is nested JSON displayed in the table?

Depending on the tool, a nested object or array is shown either as a nested sub-table inside the cell (so you can expand and explore it) or as a compact JSON string. This is an advantage over CSV, which has no way to show structure. If you need a flat grid, look for a flatten option that turns nested keys into dot-notation columns.

Can I copy or export the rendered table?

Yes — you can usually select and copy the table directly into Excel or Google Sheets, where it pastes as proper rows and columns, or use an export button to download CSV or .xlsx. The on-screen table is just a view, so exporting is how you turn it into a reusable file. For Markdown or other targets, use the matching converter.

What happens when objects in the array have different keys?

The table builds its columns from the union of every key across all rows, and any row missing a particular key shows an empty cell in that column. This makes schema inconsistencies visually obvious, since gaps line up under the columns that only some records have. It also ensures no field is silently dropped just because the first object lacked it.

Why does a very large JSON file make the table slow?

Each cell becomes a DOM element, so rendering tens of thousands of rows creates a huge number of nodes and can make the browser sluggish or unresponsive. Tools that expect large inputs paginate or virtualize the rows so only the visible portion is drawn. If you hit this, reduce the row count or export to CSV/Excel instead of rendering everything at once.

Are values with HTML characters safe to render?

A safe renderer HTML-escapes characters like <, >, and & so they show as literal text and can't execute as markup or script in the page. This prevents both broken layout and cross-site-scripting when the JSON comes from an untrusted source. The displayed value matches your data exactly while staying inert.

Does rendering the table send my JSON anywhere?

No, the table is built in your browser from the JSON you paste, with no upload to any server. Your data stays on your device, which is why it's safe to inspect sensitive payloads. Nothing is logged or transmitted during rendering.