Structured table to JSON
ASCII Table to JSON Converter
jc-rs reads the header and column positions in an aligned terminal table, ignores common border and row-separator styles, and emits one object for each single-line data row.
asciitable--asciitablev1.2.0
Try the real parser
Paste input on the left. The same Rust parser that ships in the binary runs locally in this page and writes its JSON on the right.
[ { "count": "3", "name": "api", "status": "ready" }, { "count": "1", "name": "worker", "status": "pending" } ]
Hover over a JSON value, or focus the JSON pane and use the Left and Right arrow keys, to trace it to the input. Parsing runs inside this tab in WebAssembly. Pasted text and opened files are not uploaded. If site analytics is enabled, it may receive page-level visit data such as the URL, title, and referrer; text in this editor is never included.
Accepted input
A table with one header row and one physical line per data row. Plain fixed-width tables, pipe-based Markdown tables, and common ASCII or box-drawing borders are accepted; row separators and ANSI terminal color sequences are ignored. In plain tables, column headers need clear spacing and should be unique.
What the JSON contains
- Each data row becomes one object in an array; separator lines do not become records.
- Header labels are normalized to lowercase keys with snake-case-style separators.
- Cell values remain strings, and an empty cell becomes
null. - Use the multiline-table parser when one logical row spans several physical lines.
What you can do here
- Convert an ASCII table to JSON records
- Parse a Markdown or Unicode table from terminal output
- Convert a fixed-width table without treating prose as tabular data
Use the same parser in a shell
$ cat table.txt | jc-rs --asciitableThe browser tool is for inspection. The CLI form is the useful one in scripts, pipes, containers, and repeatable checks.
Continue with the parsed JSON
Fixture coverage
Magic syntax
Source: crates/jc-rs-parsers/src/misc/asciitable.rs. jc-rs targets the schemas defined by the original Python tool. Fixture coverage above is the measured evidence for this parser; test the inputs your pipeline depends on. Compare