
Zed 1.23.2でJSONL / NDJSONのログをテーブル表示する
どうも!オペ部の西村祐二です!
Zed の安定版 1.23.2 で、JSONL / NDJSON ファイルをテーブル(表)としてプレビューできるようになりました。ログやデータセットで JSONL をよく扱うので、実際にどう見えるのか、ソートや絞り込みがどこまで使えるのかを試してみました。
JSONL / NDJSONのテーブルプレビューとは
JSONL(JSON Lines)と NDJSON(Newline Delimited JSON)は、1 行に 1 つの JSON オブジェクトを書く形式です。ログ出力、API のダンプ、機械学習のデータセットなどでよく使われます。1 行ずつ独立しているため追記や逐次処理に向く一方、エディタ上ではただの縦に長いテキストになり、どのレコードにどの値が入っているかを目で追いにくいという面があります。
Zed のテーブルデータプレビューは、もともと 1.17 で CSV・TSV などの区切り形式を対象に追加された機能です。1.23.2 のリリースノートには次のように記載されています。
Added JSONL and NDJSON support to the tabular data preview. Open previews alongside the source with
cmd-k v(macOS) orctrl-k v(Linux/Windows).
あわせて、テーブルプレビューで行の区切り線が最終列の先まで伸びてしまう不具合も同じリリースで修正されています。
試してみる
環境
- macOS 26.6.1(Apple シリコン)
- Zed 1.23.2(stable、2026-10-07 リリース)
- 設定・キーマップは既定のまま
1. JSONLファイルを開いてテーブル表示する
確認用に、1 行 1 JSON の JSONL を用意しました。
{"id": 1, "level": "info", "msg": "service started", "ts": "2026-10-09T09:00:00Z"}
{"id": 2, "level": "warn", "msg": "retry scheduled", "ts": "2026-10-09T09:00:03Z"}
{"id": 3, "level": "error", "msg": "connection refused", "ts": "2026-10-09T09:00:05Z"}
このファイルを Zed で開き、cmd-k に続けて v を押すと、ソースの右側に「Preview events.jsonl」タブが開きました。

各 JSON オブジェクトのキーがそのまま列見出しになり、1 行 1 レコードで並びます。文字列の値は "info" のように引用符が付いたまま表示されるので、数値(1)と文字列を見分けられます。
2. 列でソートする
列見出しにカーソルを合わせると、見出しの右に絞り込み(漏斗)とソート(↕)のアイコンが出ます。見出しの文字をクリックしてもソートはされず、「Right click to copy column name」というツールチップが出て、右クリックで列名をコピーできます。
level 列の ↕ をクリックすると、A-Z 順(error → info → warn)に並び替わりました。左端の行番号は元の行番号(3, 1, 2)のままなので、ソースのどの行かを追えます。

3. 値で行を絞り込む
漏斗のアイコンをクリックすると、検索欄と、その列に出てくる値の一覧が件数付きで表示されます。

"error" を選ぶと、該当する 1 行だけになりました。ログから異常系のレコードだけを拾う、といった使い方ができます。

ここまでの操作(テーブル表示 → ソート → 絞り込み)を通しで録画したものです。

4. キーが行ごとに違う JSONL の扱い
JSONL は 1 行ずつ独立しているため、行ごとにキーの集合が異なることがあります。あるレコードにだけネストした detail キーがあるファイルで試しました。
{"id": 1, "level": "info", "msg": "service started"}
{"id": 2, "level": "error", "msg": "connection refused", "detail": {"host": "db", "port": 5432}}

- 列は全行のキーを合わせたもの(和集合)になり、
detail列が追加されました - キーがない行のセルは空欄です
- ネストしたオブジェクトは展開されず、
{"host":"db",...}という 1 行の JSON として表示されます
ネストした値の中身でソートや絞り込みをしたい場合は、事前に jq などで平坦にしておく必要がありそうです。
検証結果の考察
JSONL をテーブルとして開くと、キーが列に揃うので、レコードを横断して値を見比べやすくなりました。ソートと絞り込みは CSV と同じ操作で使え、絞り込みメニューに値ごとの件数が出るので、ログの level のような列なら分布もひと目で分かります。
一方で、ネストしたオブジェクトは 1 行の JSON 文字列のままなので、深い構造のログを掘るには向きません。フラットなログやデータセットを眺める用途で使うのがよさそうです。
まとめ
- Zed 1.23.2 で、テーブルデータプレビューが JSONL / NDJSON に対応しました。macOS では
cmd-k vでソースと並べて開けます - 列見出しにカーソルを合わせると出る ↕ でソート、漏斗で値ごとの絞り込みができました
- キーが行ごとに違う場合は和集合の列になり、ネストしたオブジェクトは 1 行の JSON として表示されます
誰かの参考になれば幸いです。
参考リンク:








