JSON (JavaScript Object Notation) je univerzální formát výměny dat pro moderní REST API, GraphQL endpointy, databázové dotazy i konfigurační soubory. Surový JSON ve formě hlubokých hierarchií klíč–hodnota je však notoricky obtížné rychle prohlížet při code review, psaní dokumentace nebo týmových prezentacích. Techničtí autoři, softwaroví inženýři, specialisté DevOps i produktoví manažeři často potřebují převést surové JSON záznamy na přehledné, strukturované tabulky Markdown vhodné pro GitHub README.md, stránky dokumentace Notion, tikety Jira a technické specifikace.
Porozumění tabulkovým formátům JSON
Aby se JSON čistě převedl na tabulku Markdown, měla by podkladová struktura ideálně představovat seznam záznamů. Nejpřímočařejší vstup je JSON pole objektů s jednotnými klíči:
[
{ "id": "USR-101", "name": "Alice Smith", "role": "Backend Engineer", "status": "Active" },
{ "id": "USR-102", "name": "Bob Jones", "role": "Frontend Developer", "status": "Pending" },
{ "id": "USR-103", "name": "Carol Danvers", "role": "DevOps Lead", "status": "Active" }
]
V této kanonické struktuře každý jedinečný klíč objektů (id, name, role, status) tvoří sloupec záhlaví tabulky Markdown a každý objekt se mapuje přímo na řádek tabulky.
Zpracování nestandardního nebo heterogenního JSON vstupu
Odpovědi API a exporty databází v praxi málokdy dodržují dokonale jednotné struktury. JSON payloady často obsahují chybějící atributy, volitelná pole jen u části objektů nebo slovníkové mapy s dynamickými klíči. Utiliome tyto okrajové případy zvládá plynule:
- Heterogenní klíče napříč objekty: Pokud první objekt obsahuje
{ "a": 1, "b": 2 }a druhý{ "b": 2, "c": 3 }, Utiliome agreguje všechny jedinečné klíče (a,b,c) do řádku záhlaví. U chybějících vlastností v konkrétních řádcích nástroj automaticky vloží prázdné buňky, aby zachoval zarovnání mřížky. - JSON slovníkové objekty: Když je vstupem slovník objektů místo pole, Utiliome sestaví dvousloupcovou tabulku „Key | Value“, kde do sloupce Key umístí klíče nejvyšší úrovně a do sloupce Value jejich kompaktní JSON hodnoty.
- Skalární pole: U pole jednoduchých řetězců nebo čísel Utiliome sestaví čistou jednosloupcovou tabulku „Value“ s jedním řádkem na položku.
Krok za krokem: algoritmus převodu do Markdown
Pod kapotou vyžaduje převod JSON na tabulku GitHub-Flavored Markdown (GFM) posloupnost algoritmických transformací:
- Sběr klíčů a deduplikace: Převodník projde každý prvek JSON pole a sestaví hlavní seznam jedinečných klíčů při zachování strukturálního pořadí.
- Sestavení záhlaví: Hlavní seznam klíčů se spojí oddělovači svislítka (
|). Například| id | name | role | status |. - Oddělovací řádek: Druhý řádek vymezí hranice sloupců standardními GFM oddělovači (
|---|). - Mapování řádků a escapování znaků: Každý JSON objekt se vyhodnotí vůči hlavnímu seznamu klíčů. Speciální znaky Markdown v řetězcích — zejména svislítka (
|) a zalomení řádků (\n) — se automaticky escapují nebo transformují (např. nový řádek na<br>), aby se nerozbily hranice buněk tabulky Markdown.
Automatický převodník Utiliome tak vývojářům ušetří ruční formátování svislítek, syntaktické chyby i bolestivé úpravy tabulek v textových editorech.
Skriptovaný workflow v jq najdete v článku převod odpovědí JSON API na tabulky Markdown pomocí jq.