> ## Documentation Index
> Fetch the complete documentation index at: https://ngquct-fix-rail-identity-badge.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Cell and Row Viewers

> View and edit JSON, PHP serialized, and binary cell values, set per-column display formats, and inspect whole rows in the sidebar

Click the chevron on a JSON or blob cell to open its value in a popover anchored to that cell. Which viewer opens follows the column: its declared type, or the **Display As** choice on its header, and that choice changes rendering only, never what is stored.

Whether it opens for editing follows the row and the column. A row marked for deletion opens nothing at all. A result the app cannot write back to, a generated column, and a column the driver marks immutable such as MongoDB's `_id` all open read-only; [Change Tracking](/features/change-tracking) covers which results are writable. PHP serialized values, and binary past the hex cap, are read-only for everyone.

## Display as formats

Right-click a column header and pick **Display As**. The submenu lists the formats that fit the column type, with a checkmark on the active one.

| Format | Column types | Effect |
| - | - | - |
| Raw Value | all | Shows the stored value, and turns off detection for that column |
| UUID | binary, text | Renders 16 raw bytes or a 32-digit hex string as a hyphenated UUID |
| Unix Timestamp (seconds) | integer | Renders the number as a formatted date |
| Unix Timestamp (milliseconds) | integer | Same, treating the number as milliseconds |
| JSON | text | Opens the cell in the JSON viewer |
| PHP Serialized | text | Opens the cell in the PHP serialized viewer |

An override persists per column, scoped to the connection and table. A column with a format set copies in that format when you copy the single cell; a block of cells or a whole row always copies the stored value.

Id-like binary and character columns, and integer columns whose names read as timestamps, pick up UUID and date rendering on their own. **Smart value detection** in [Settings > Data](/customization/data-settings) turns that off, and a manual choice always wins over it, **Raw Value** included. MongoDB binary columns never offer UUID, since the driver decodes them under its own Legacy UUID Encoding setting; see [MongoDB](/databases/mongodb).

## JSON viewer

A JSON-typed column opens on the chevron; double-click or `Enter` edits it inline instead. A text column holding JSON needs **Display As > JSON** first.

The popover has two modes. **Text** is syntax-highlighted and pretty-printed, and editable when the cell is. **Tree** is collapsible, with a search field, and navigation only. Both keep your key order and exact number values, integers larger than JavaScript can represent included.

<Frame caption="JSON editor popover with Text and Tree modes">
  <img className="block dark:hidden" src="https://mintcdn.com/ngquct-fix-rail-identity-badge/7TUJuWKUmVWSlt9W/images/json-editor-popover.png?fit=max&auto=format&n=7TUJuWKUmVWSlt9W&q=85&s=08ca0b71452768a9d1113b00f5f7d384" alt="JSON editor popover" width="3024" height="1722" data-path="images/json-editor-popover.png" />

  <img className="hidden dark:block" src="https://mintcdn.com/ngquct-fix-rail-identity-badge/7TUJuWKUmVWSlt9W/images/json-editor-popover-dark.png?fit=max&auto=format&n=7TUJuWKUmVWSlt9W&q=85&s=69c11b7980f506964202b62d517fca73" alt="JSON editor popover" width="3024" height="1722" data-path="images/json-editor-popover-dark.png" />
</Frame>

The mode you switch to becomes the default for the next value, which is the same preference as **JSON Viewer > Default view** in Settings. The pop-out button detaches the viewer into its own resizable window.

Opening a value and seeing it pretty-printed is not an edit: the row is marked changed only once you alter the content. **Save** commits a compact value, key order and numbers preserved, through the [change tracking](/features/change-tracking) queue. Text that is not valid JSON prompts first.

### Filtering a tree

The search field above the tree filters keys and values as you type. The [PHP serialized tree](#php-serialized-viewer) works the same way.

* Matching ignores case and accents, so `cafe` finds `café`. Full-width and half-width differ: `ABC` does not find `ＡＢＣ`.
* A row matches on its whole value, not the shortened form shown, so a match deep inside a long string counts. A match under a collapsed parent opens its parents, and a key that matches keeps its contents and stays expandable.
* A filter that matches nothing says so, and says separately when the document was cut at 5,000 nodes, since the rows past the cut were never searched.

## PHP serialized viewer

Set **Display As > PHP Serialized** on a text column, then double-click or press `Enter`. The viewer is read-only: PHP serialized values round-trip through PHP itself.

**Tree** mode filters the same way as the JSON tree, with type badges on the nodes (`str`, `int`, `arr`, `obj`, `ser`, `ref`) and visibility badges on object members (`protected`, `private (ClassName)`). A custom-serialized class (the `C:` token) is one opaque leaf, and a reference (`r:`/`R:`) shows as `→ #N` and is not followed. **Raw** mode shows the original string with text selection.

## Blob and hex

A blob cell renders in the grid as compact hex (`0x48656C…`). Click the chevron or double-click for the popover: a classic hex dump with offset, byte columns, and ASCII, plus an editable hex field under it on an editable table. That field takes spaced or continuous hex, with or without a `0x` prefix, and invalid hex disables **Save**.

## Limits

A value that refuses to open in one mode still opens in another.

| Viewer | Cap | Past the cap |
| - | - | - |
| JSON pretty-printing | 500,000 characters | The value shows as stored |
| JSON tree | 100,000 characters | "JSON Too Large". Read it in Text mode |
| JSON and PHP trees | 5,000 nodes | The first 5,000 load, and a `…` row marks the cut |
| PHP serialized | 5,000,000 characters, 256 levels deep | Tree shows a placeholder, Raw still works |
| Hex dump and hex editor | 10 KB | The dump is truncated, and the editor opens read-only |
| Blob cell in the grid | First 64 bytes | Rendered as `0x48656C…` |

## Row details inspector

**View > Show Inspector** (`Cmd+Option+I`), or the toolbar button at the trailing end, opens it. A field's editor follows its content, with no **Display As** step, and the first match wins.

| Content | Editor |
| - | - |
| A JSON column, or text that parses as JSON | JSON editor |
| A PHP serialized value | Read-only [PHP viewer](#php-serialized-viewer) |
| An enum, set, or boolean column | Picker |
| A blob column | Hex editor |
| A `TEXT` variant, `CLOB` or `NTEXT` column, or any value with a line break or over 80 characters | Scrolling text box |
| Anything else | One-line field |

<Frame caption="Row details inspector with per-field editors">
  <img className="block dark:hidden" src="https://mintcdn.com/ngquct-fix-rail-identity-badge/7TUJuWKUmVWSlt9W/images/row-details-inspector.png?fit=max&auto=format&n=7TUJuWKUmVWSlt9W&q=85&s=b3db7ccfa299fcc78010db592dafa0d6" alt="Row details inspector" width="1560" height="960" data-path="images/row-details-inspector.png" />

  <img className="hidden dark:block" src="https://mintcdn.com/ngquct-fix-rail-identity-badge/7TUJuWKUmVWSlt9W/images/row-details-inspector-dark.png?fit=max&auto=format&n=7TUJuWKUmVWSlt9W&q=85&s=5ba720d9cfe1ca2642210d2207afa04d" alt="Row details inspector" width="1560" height="960" data-path="images/row-details-inspector-dark.png" />
</Frame>

The length test reads the stored value, so a long value pasted into a one-line field stays on one line until you save and reselect the row.

The text box and the JSON editor each carry a drag handle under them, with separate remembered heights that survive a relaunch.

**Open in Window** detaches a JSON, PHP or text value into its own resizable window; on an editable row, edits there join the same pending changes as the field. **Expand in Sidebar**, on JSON and PHP only, fills the inspector with that one field, and **Fields** goes back.

Right-click a field for its menu; an editable field also shows it on a hover button. **Set NULL**, **Set DEFAULT**, **Set EMPTY** and **SQL Functions** need an editable field. **Copy Value** is always there, and a read-only field keeps its text selectable.

With no row selected, the inspector describes the table: data, index and total size, row count, average row size, engine, collation, and creation and update dates, as far as the database reports them. On a Structure tab it follows the structure grid.

For whole-row JSON, switch the result to JSON mode with the switcher at the leading edge of the status bar, or from **View > Result View**. It shows what the [grid](/features/data-grid) shows, in the same order, minus hidden columns and rows marked for deletion, which the count line reports separately. Select rows in Data mode first to narrow it, then click **Copy JSON**.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.