JSON (JavaScript Object Notation) este formatul universal de schimb pentru API-uri REST moderne, endpoint-uri GraphQL, interogări de bază de date și fișiere de configurare. JSON-ul brut, ca ierarhii adânci de cheie-valoare, este greu de parcurs rapid la code review, documentație sau prezentări. Scriitorii tehnici, inginerii, specialiștii DevOps și product managerii trebuie adesea să transforme înregistrări JSON în tabele Markdown clare, pentru README.md pe GitHub, pagini Notion, tichete Jira și specificații tehnice.
Formate JSON tabelare
Ca un payload JSON să devină un tabel Markdown curat, structura ar trebui să reprezinte o listă de înregistrări. Intrarea cea mai simplă este un tablou JSON de obiecte cu chei uniforme:
[
{ "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" }
]
În structura canonică, fiecare cheie unică (id, name, role, status) devine o coloană de antet, iar fiecare obiect devine un rând.
Intrare JSON neuniformă sau nestandard
Răspunsurile reale de API și exporturile din baze respectă rar structuri perfect uniforme. Adesea lipsesc atribute, câmpurile opționale apar doar la o parte din obiecte sau cheile din dicționar sunt dinamice. Utiliome tratează aceste cazuri:
- Chei heterogene între obiecte: Dacă primul obiect conține
{ "a": 1, "b": 2 }și al doilea{ "b": 2, "c": 3 }, Utiliome adună toate cheile unice (a,b,c) în rândul de antet. Pentru proprietățile lipsă inserează celule goale, ca grila să rămână aliniată. - Obiecte dicționar JSON: Când intrarea este un dicționar cheie-valoare de obiecte, nu un tablou, Utiliome construiește un tabel cu două coloane, „Cheie | Valoare”: cheile de nivel superior în coloana Cheie și valorile JSON compacte în coloana Valoare.
- Tablouri scalare: La un tablou de șiruri sau numere simple, Utiliome construiește un tabel cu o singură coloană, „Valoare”, cu un rând per element.
Pașii algoritmului de conversie Markdown
Sub capotă, conversia JSON într-un tabel GitHub-Flavored Markdown (GFM) urmează o secvență de transformări:
- Colectarea și deduplicarea cheilor: Convertorul parcurge fiecare element din tablou și adună o listă master de chei unice, păstrând ordinea structurală.
- Construirea antetului: Lista master este unită cu delimitatori pipe (
|). De exemplu,| id | name | role | status |. - Linia de delimitare: Un al doilea rând marchează limitele coloanelor cu separatori GFM standard (
|---|). - Maparea rândurilor și escape-ul caracterelor: Fiecare obiect JSON este evaluat față de lista master. Caracterele Markdown speciale din șiruri — mai ales pipe-urile verticale (
|) și rândurile noi (\n) — sunt escapate sau transformate (de exemplu newline în<br>), ca să nu spargă limitele celulelor.
Cu convertorul automat Utiliome, dezvoltatorii elimină formatarea manuală a pipe-urilor, erorile de sintaxă și ajustările dureroase în editorul de text.
Pentru un flux cu jq, vezi transformarea răspunsurilor JSON de API în tabele Markdown cu jq.