JSONB editor
The JSONB editor treats jsonb (and json) as structure, not strings. Three modes — text, tree, table — switch instantly. Edits apply as a diff: ide99 doesn't rewrite the whole value or reorder keys.
Open
Double-click a jsonb cell in the result grid — a modal editor opens.
Also: right-click → Edit JSON… in the grid or in the object panel.
Three view modes
At the top of the window — a switch: Text · Tree · Table.
Text
Raw JSON with syntax highlighting. For experts. Supported:
- Highlighting for keys, strings, numbers, literals
- Folding for arrays and objects (arrow next to
[ or {)
- Search (⌘+F)
A validation error (missing comma, unclosed quote) is highlighted red, Save is disabled.
Tree
A tree with expandable nodes. Each node — key + value + type in the tooltip.
- Click a key to rename
- Click a value to edit (type detected automatically)
- The + button on a node — add a child (key for object, element for array)
- The × button — remove a branch
- Drag&drop — reorder keys or array elements
The tree applies a diff: if you renamed email → e_mail, ide99 keeps the new name in place, without rebuilding the entire value.
Table
If the jsonb value is an array of objects with the same keys (typical for events log, tags, items), Table mode shows it as a table:
[
{"id": 1, "name": "Alice", "active": true},
{"id": 2, "name": "Bob", "active": false}
]
becomes:
| id |
name |
active |
| 1 |
Alice |
✓ |
| 2 |
Bob |
— |
You can edit cells, add columns, delete rows. Especially handy for tag lists and settings arrays.
Diff preview
Before saving, the Preview SQL button shows the exact UPDATE to be run:
UPDATE users
SET data = jsonb_set(data, '{email}', '"new@mail.com"')
WHERE id = 42;
ide99 uses jsonb_set for targeted edits, not data = '{..whole object..}' — that means:
- Less WAL change (matters for replication)
- Doesn't break other fields if they were updated concurrently
- Preserves key order in the value
Saving on a prod connection
On a prod connection, saving requires extra confirmation:
Saving jsonb change in users.data for row id=42. Confirm?
A safety net for tree typos that could touch critical fields.
Tip: review before saving
For complex edits (reordering an array, replacing a nested object), it's convenient to do them in Tree mode, then switch to Text and visually check correctness.
JSONB path autocomplete in the editor
When you write data->> in the SQL editor — after the arrow, ide99 suggests real keys from this column. To enable it, ide99 runs a background scan when connecting: walks the first ~10,000 rows of each jsonb column, collects keys and types.
Scanning runs:
- On first connection to a database
- When you press Refresh in the Schema panel
- Once a day (if the app is running)
The scan is read-only, never writes to the DB. Disable in Settings → General → Scan jsonb schemas.
Next