JSON na Markdown
Darmowe narzędzie online do konwersji JSON na Markdown. Przekształcaj tablice JSON lub zagnieżdżone obiekty jednym kliknięciem w kod tabel GFM Markdown gotowy do użycia w GitHub README, dokumentacji technicznej i na blogach. 4 tryby obsługi zagnieżdżeń, regulowana głębokość spłaszczania (1-6), niestandardowy separator, upiększanie kluczy (user_name → User Name), sortowanie kolumn, inteligentny podział na wiele tabel, inteligentne symbole zastępcze null, wyrównywanie, podgląd 9 opcji na żywo. Całkowicie lokalnie w przeglądarce.
Powiązane Rekomendacje
O konwersji JSON na Markdown i tabelach Markdown
Narzędzie JSON na Markdown automatycznie przekształca struktury danych JSON w standardowy kod tabel GFM (GitHub Flavored Markdown). Uwalnia programistów od ręcznego pisania separatorów `|` / `-` i jest szczególnie przydatne do szybkiego wyświetlania zagnieżdżonych danych API, plików konfiguracyjnych i dowolnych struktur JSON jako dokumentacji technicznej, README i blogów.
Tabela Markdown to czysto tekstowa notacja tabelaryczna zaproponowana przez Johna Grubera w 2004 roku w składni Markdown: `|` oddziela komórki, `-` definiuje wiersz separatora nagłówka, opcjonalny `:` kontroluje wyrównanie. GFM (GitHub Flavored Markdown) rozszerza standardowy Markdown o składnię tabel i jest natywnie obsługiwany przez GitHub, GitLab, Bitbucket, Notion, Confluence, Slack, Discord, VS Code i większość nowoczesnych platform. Kod generowany przez to narzędzie ściśle odpowiada specyfikacji GFM.
Narzędzia JSON na Markdown na rynku dzielą się na trzy kategorie: pierwsza generuje tylko ciąg kodu Markdown; druga oferuje zaawansowaną konfigurację (głębokie spłaszczanie/upiększanie kluczy/podział na wiele tabel) — to narzędzie jest tego przedstawicielem; trzecia obsługuje odwrotne parsowanie Markdown (Markdown → JSON).
«Spłaszczanie zagnieżdżeń + upiększanie kluczy» to kluczowe wyróżnienie tego narzędzia na tle konkurencji: tradycyjne narzędzia pokazują `{user:{name:'Alice'}}` jako ciąg znaków, a to narzędzie rekurencyjnie rozwija do kolumny `user.name` (do 6 poziomów głębokości, konfigurowalny separator) i automatycznie przekształca `user_name`/`userProfileId` na nagłówki w stylu `User Name`/`User Profile Id`. Oznacza to, że rzeczywiste dane biznesowe ze złożonymi strukturami zagnieżdżonymi, takimi jak GitHub API, Stripe API, Notion API, mogą być przetwarzane bezpośrednio, bez wcześniejszego spłaszczania przez jq/lodash.
«Inteligentny podział na wiele tabel» to kolejne wyróżnienie: gdy JSON na najwyższym poziomie zawiera wiele pól tablicowych (`{users:[...], orders:[...], products:[...]}`), narzędzie automatycznie je rozpoznaje, dzieli każdą tablicę na niezależną tabelę Markdown i automatycznie generuje nagłówek `### NazwaPola` (H3) nad każdą tabelą, dzięki czemu struktura długich dokumentów jest przejrzysta i możliwa do nawigacji.
Największą przewagą tabel Markdown nad HTML jest „czysty tekst dla kontroli wersji”: pliki `.md` w git diff wyraźnie pokazują zmiany wierszy tabeli, podczas gdy znaczniki `<tr>` `<td>` tabel HTML są zwykle wyświetlane jako długie linie w narzędziach diff i trudne do odczytania. Dlatego platformy hostingowe kodu, takie jak GitHub i GitLab, domyślnie przyjęły tabele Markdown jako sposób wyświetlania danych.
Przypadki użycia
- Tworzenie dokumentacji technicznej — konwersja danych JSON zwróconych przez API na tabele Markdown do wyświetlenia
- GitHub README — wyświetlanie danych konfiguracyjnych, opisów parametrów i przykładów odpowiedzi API
- Raporty danych — prezentacja wyników analizy w tabelach Markdown (eksport do Notion/Confluence po wygenerowaniu)
- Dokumentacja API (Swagger/Redoc/OpenAPI) — czytelne wyświetlanie struktur danych zwracanych przez interfejsy
- Sekcje dokumentacji dla generatorów statycznych stron (VuePress/Docusaurus/Hexo)
- Udostępnianie ustrukturyzowanych danych w Slack/Discord/komunikatorach firmowych (GFM natywnie obsługiwany na tych platformach)
- Podgląd tabel w VS Code/JetBrains IDE Markdown Preview na żywo
- Współpraca w kontroli wersji: tabele Markdown to czysty tekst, przyjazny dla git diff i Code Review
- Edukacja: konwersja zadań studentów z zagnieżdżonym JSON na jednolite tabele do sprawdzania i oceniania
- Szablony e-maili (klienty poczty z obsługą Markdown: Bear Mail, HEY)
- Import do bazy Notion: wygeneruj tabelę Markdown tym narzędziem, a następnie wklej do Notion
- Internacjonalizacja: ta sama struktura dla dokumentów chińskich i angielskich po spłaszczeniu JSON + Beautify keys
Jak Używać
- Wklej tablicę JSON (zalecane) lub zagnieżdżony obiekt do lewego edytora, lub kliknij «Sample» aby załadować 3 przykładowe zagnieżdżone dane użytkowników, lub kliknij «Upload» aby przesłać plik .json/.txt
- Wybierz tryb obsługi zagnieżdżeń na pasku narzędzi (zalecany «Flatten»), przy głębokim zagnieżdżeniu zwiększ Max Depth
- W razie potrzeby niestandardowego separatora wprowadź go w polu Separator (domyślnie `.`, można zmienić na `_` / `-` / `/`)
- Wybierz Strategy: «Single» dla prostej tablicy, «Multi» dla automatycznego dzielenia wielu tablic, «Split» dla wymuszonego dzielenia
- Zaznacz opcje stylu: Sort columns, Beautify keys, Exclude empty, Include Caption, Include Index
- Wybierz wyrównanie: do lewej / do środka / do prawej
- Kliknij «Convert» (lub naciśnij Enter) aby uruchomić konwersję — ochrona przed drganiem 500 ms przy wprowadzaniu
- Sprawdź wygenerowany kod tabeli Markdown po prawej stronie, następnie kliknij «Copy» aby skopiować kod i wkleić do dokumentu Markdown, lub «Download» aby zapisać jako plik table.md
Funkcje
- Automatyczne spłaszczanie zagnieżdżonych obiektów: rekurencyjne rozwijanie `{user:{name,age}}` do `user.name`, `user.age` z notacją kropkową (głębokość 1-6), bez ręcznego pisania skryptów
- 4 tryby obsługi zagnieżdżeń: Flatten (zalecany, regulowana głębokość) / First Key (zagnieżdżone obiekty jako pojedyncza kolumna JSON) / Stringify (zagnieżdżone obiekty jako łańcuch JSON) / Raw JSON (każdy wiersz jako pełny blok JSON)
- Inteligentny podział na wiele tabel: rozpoznawanie tablic najwyższego poziomu (`users`, `orders`), automatyczne dzielenie na niezależne tabele Markdown z nagłówkami ###, idealne dla złożonych danych biznesowych
- Niestandardowy separator: domyślnie `.` (zgodny z Lodash/MongoDB), można zmienić na `_` / `-` / `/` w pasku narzędzi
- Upiększanie kluczy (camelCase/snake_case → Title Case): `user_name` → `User Name`, `userProfileId` → `User Profile Id` — nagłówki stają się czytelne dla człowieka
- Sortowanie kolumn: sortowanie wszystkich nagłówków alfabetycznie jednym kliknięciem dla stabilnej kolejności przy porównywaniu dokumentów
- Wykluczanie pustych kolumn: automatyczne wykrywanie i wykluczanie kolumn, gdzie wszystkie wiersze to null/undefined/pusty ciąg
- 3 tryby wyrównywania: do lewej (`:-`) / do środka (`:-:`) / do prawej (`-:`) zgodnie ze specyfikacją GFM
- Kolumna indeksu wierszy: opcjonalna kolumna `#` po lewej stronie (konfigurowalny nagłówek), ułatwia odwoływanie się do numerów wierszy
- Nagłówek Caption: automatyczne generowanie `### NazwaDanych` (H3) nad każdą tabelą, struktura dokumentu staje się przejrzysta, pomaga w SEO
- Eskalowanie świadome typów: `|` / `\` / znaki nowej linii w komórkach automatycznie eskalowane do `\|` / `\\` / `<br>`, zapobiega uszkodzeniu składni tabeli Markdown
- Statystyki generowania: pasek statusu na dole pokazuje „Wygenerowano N tabel × M wierszy × K kolumn” + rozmiar w bajtach na żywo, przy debugowaniu długich JSON-ów skala danych widoczna na pierwszy rzut oka
- Przykładowe dane + przesyłanie plików: 3 wbudowane przykłady użytkowników zagnieżdżonych, przeciągnij i upuść lub kliknij, aby przesłać plik .json/.txt
- W pełni lokalne przetwarzanie: całe parsowanie JSON, spłaszczanie, generowanie Markdown i operacje kopiowania/pobierania odbywają się w przeglądarce, dane nie są wysyłane na serwer
Przykłady kodu
JavaScript: fetch + spłaszczanie zagnieżdżeń + wyjście Markdown
javascriptNajczęstszy scenariusz w rzeczywistym rozwoju: po wywołaniu GitHub API spłaszczanie zagnieżdżonych obiektów do nazw kluczy z notacją kropkową, a następnie użycie tego narzędzia do wygenerowania tabeli Markdown.
// 1) Wywołanie GitHub API, aby uzyskać listę użytkowników
async function fetchUsers() {
const res = await fetch('https://api.github.com/users?per_page=10');
return await res.json();
}
// 2) Funkcja spłaszczania zagnieżdżeń (odpowiednik logiki Flatten tego narzędzia)
function flattenObject(obj, prefix = '', sep = '.', result = {}, depth = 0, maxDepth = 3) {
if (!obj || typeof obj !== 'object' || Array.isArray(obj)) return result;
if (depth >= maxDepth) {
if (prefix) result[prefix] = JSON.stringify(obj);
return result;
}
for (const [k, v] of Object.entries(obj)) {
const key = prefix ? `${prefix}${sep}${k}` : k;
if (v && typeof v === 'object' && !Array.isArray(v)) {
flattenObject(v, key, sep, result, depth + 1, maxDepth);
} else {
result[key] = v;
}
}
return result;
}
// 3) Konwersja spłaszczonych danych na tabelę Markdown
function generateMarkdownTable(rows, opts = {}) {
const { align = 'left', includeIndex = false, sortColumns = false } = opts;
const flat = rows.map(r => flattenObject(r));
let cols = [...new Set(flat.flatMap(r => Object.keys(r)))];
if (sortColumns) cols.sort((a, b) => a.localeCompare(b));
const alignMap = { left: ':-', center: ':-:', right: '-:' };
const alignSep = alignMap[align];
const headers = includeIndex ? ['#', ...cols] : cols;
const seps = includeIndex ? [alignSep, ...cols.map(() => alignSep)] : cols.map(() => alignSep);
const escapeCell = v =>
v == null ? '' :
typeof v === 'object' ? JSON.stringify(v).slice(0, 60) :
String(v).replace(/\\|/g, '\\|').replace(/\n/g, '<br>');
const lines = [];
lines.push('| ' + headers.join(' | ') + ' |');
lines.push('| ' + seps.join(' | ') + ' |');
flat.forEach((r, i) => {
const idxCell = includeIndex ? [i + 1] : [];
const cells = cols.map(c => escapeCell(r[c]));
lines.push('| ' + [...idxCell, ...cells].join(' | ') + ' |');
});
return lines.join('\n');
}
// 4) Wyjście do README.md
const users = await fetchUsers();
const md = generateMarkdownTable(... [truncated]Python: generowanie raportu Markdown na backendzie Flask
pythonAgregacja danych z wielu źródeł na backendzie, generowanie tabeli Markdown w Pythonie (bez zależności od frontendu), odpowiednie do automatycznego generowania raportów tygodniowych CI/CD.
from flask import Flask, jsonify
import json
app = Flask(__name__)
def flatten(obj, prefix='', sep='.', result=None, depth=0, max_depth=3):
"""Rekurencyjne spłaszczanie zagnieżdżonych obiektów"""
if result is None:
result = {}
if not isinstance(obj, dict) or depth >= max_depth:
if prefix:
result[prefix] = json.dumps(obj) if isinstance(obj, (dict, list)) else obj
return result
for k, v in obj.items():
key = f"{prefix}{sep}{k}" if prefix else k
if isinstance(v, dict):
flatten(v, key, sep, result, depth + 1, max_depth)
else:
result[key] = v
return result
def json_to_markdown_table(data, align='left', include_index=False,
sort_columns=False, caption=None):
if isinstance(data, dict):
data = [data]
if not data:
return "<!-- No valid objects found -->"
flat_rows = [flatten(row) for row in data]
columns = []
for row in flat_rows:
for k in row:
if k not in columns:
columns.append(k)
if sort_columns:
columns.sort()
align_sep = {'left': ':-', 'center': ':-:', 'right': '-:'}[align]
headers = (['#'] if include_index else []) + columns
seps = ([align_sep] if include_index else []) + [align_sep] * len(columns)
def escape_cell(v):
if v is None:
return ''
if isinstance(v, (dict, list)):
s = json.dumps(v)
return s[:60] + '…' if len(s) > 60 else s
return str(v).replace('|', '\\|').replace('\n', '<br>')
lines = []
if caption:
lines.append(f'### {caption}\n')
lines.append('| ' + ' | '.join(headers) + ' |')
lines.append('| ' + ' | '.join(seps) + ' |')
for i, row in enumerate(flat_rows):
idx_cell = [str(i + 1)] if include_index else []
cells = [escape_cell(row.get(c, '')) for c in columns]
lines.appe... [truncated]Wiersz poleceń: agregacja jq + to narzędzie do generowania GitHub Release Notes
bashScenariusz operacyjny: pobieranie listy PR z GitHub API, agregacja i spłaszczanie przez jq do nazw kluczy z notacją kropkową, a następnie wklejenie do tego narzędzia w celu wygenerowania GFM Release Notes.
# 1) Pobierz ostatnie 50 scalonych PR przez gh CLI
PR_JSON=$(gh pr list --state merged --limit 50 --json number,title,author,labels,mergedAt)
# 2) Spłaszczanie zagnieżdżonej tablicy labels przez jq
echo "$PR_JSON" | jq 'map({
number: .number,
title: .title,
author: .author.login,
labels: (.labels | map(.name) | join(", ")),
mergedAt: .mergedAt
})' > release_prs.json
# 3) Otwórz to narzędzie, wklej zawartość, Strategy: "Single",
# zaznacz Sort columns + Include Index, kliknij Convert, skopiuj tabelę
# 4) Wstaw do Release Notes i utwórz Release
gh release create v2.1.0 -F RELEASE.md -t "v2.1.0"Często Zadawane Pytania
Jak przekonwertować dane JSON na tabelę Markdown?
Wklej tablicę JSON (każdy element to obiekt) lub pojedynczy obiekt do lewego pola wejściowego, kliknij przycisk «Convert» na pasku narzędzi — po prawej stronie automatycznie wygeneruje się kod tabeli Markdown w standardzie GFM. Kod można od razu wkleić do GitHub README, bloga Markdown, strony Confluence lub dokumentu Notion.
Czy można przekonwertować zagnieżdżone obiekty JSON na tabelę Markdown?
Tak. Narzędzie ma 4 wbudowane tryby obsługi zagnieżdżeń dla różnych scenariuszy: ① Flatten (zalecany): rekurencyjnie rozwija `{user:{name:'Alice',age:30}}` do kolumn `user.name`, `user.age`, głębokość 1-6; ② First Key: tylko pola najwyższego poziomu, zagnieżdżone obiekty jako ciąg JSON w jednej kolumnie; ③ Stringify: wszystkie zagnieżdżone obiekty jako ciąg JSON; ④ Raw JSON: każdy wiersz jako pełny blok JSON (idealne do wyświetlania fragmentów kodu).
Czy można zmienić separator kluczy po spłaszczeniu?
Domyślnie używana jest kropka `.` (zgodna z JavaScript/MongoDB/Lodash). Dla `user_name` (snake_case) lub `user/name` (styl ścieżki) zmień separator w polu «Separator» na pasku narzędzi (do 3 znaków).
Czym jest upiększanie kluczy (Beautify keys)?
Po zaznaczeniu «Beautify keys» klucze `user_name`, `userProfileId` są automatycznie przekształcane na `User Name`, `User Profile Id` (Title Case). Wewnętrznie: podkreślenia/myślniki zamieniane na spacje, przed wielkimi literami camelCase wstawiane spacje, pierwsza litera każdego słowa wielką. Dzięki temu nagłówki są bardziej czytelne dla ludzi, szczególnie przydatne w długich dokumentach Markdown jak README i dokumentacja API.
Jak podzielić dane na wiele tabel?
Lista rozwijana «Strategy»: ① Single (domyślnie) — cały JSON w jednej tabeli (idealne dla czystych tablic); ② Multi — JSON jako obiekt z wieloma polami tablicowymi, każda tablica automatycznie dzielona na niezależną tabelę z nagłówkiem ### (idealne dla `{users:[...], orders:[...]}`); ③ Split — wymuszone dzielenie, przetwarzane tylko pola tablicowe, pozostałe ignorowane.
Czy wygenerowaną tabelę Markdown można użyć bezpośrednio w GitHub?
Tak. Tabele generowane przez narzędzie są zgodne z CommonMark i GFM (GitHub Flavored Markdown), działają bezpośrednio w GitHub README, dokumentach GitLab, stronach Notion, blogach VuePress/Docusaurus/Hexo, wiadomościach Slack/Discord, VS Code Markdown Preview — wszędzie tam, gdzie obsługiwany jest GFM.
Czy obsługiwane jest wsadowe generowanie wielu tabel?
Tak. Przełącz Strategy na «Multi» lub «Split» — narzędzie inteligentnie rozpozna tablice najwyższego poziomu (`users`/`products`/`orders`) i automatycznie utworzy niezależną tabelę Markdown dla każdej z nich, generując nagłówek `### NazwaPola` nad każdą. Przydatne przy organizacji wyświetlania w długich dokumentach.
Jak kontrolować kolejność nagłówków?
Domyślnie narzędzie używa kolejności pierwszego wystąpienia kluczy w JSON. Dla sortowania alfabetycznego zaznacz «Sort columns». Dla pełnej niestandardowej kolejności użyj funkcji «Column order» (wkrótce dostępna).
Co zrobić, gdy jest zbyt wiele pustych kolumn?
Zaznacz «Exclude empty» — narzędzie automatycznie wykryje i wykluczy kolumny, gdzie wszystkie wiersze to null/undefined/pusty ciąg. Szczególnie przydatne dla danych rzadkich (tylko niektórzy użytkownicy wypełniają określone pola), znacząco zmniejsza szerokość tabeli.
Czy znak | wewnątrz komórki nie zepsuje tabeli?
Nie. Narzędzie automatycznie eskaluje `|` → `\|`, `\` → `\\`, znaki nowej linii → `<br>`, zapewniając, że wygenerowana tabela Markdown nie rozjedzie się w żadnym rendererze. To kluczowa przewaga nad konkurencją — większość konkurencyjnych narzędzi nie wykonuje eskalowania, przez co tabele z danymi zawierającymi `|` rozpadają się po skopiowaniu.
Jaka jest różnica między tabelą Markdown a tabelą HTML?
Tabela Markdown to czysty tekst (składnia `|` `-`), odpowiednia do dokumentacji technicznej, README, blogów, współpracy w kontroli wersji — składnia jest zwięzła i czytelna; tabela HTML to format strony ze stylami (znaczniki `<table>` `<tr>`), odpowiednia dla stron frontendowych wymagających osadzonych stylów CSS, układów responsywnych i etykiet dostępności ARIA. Oba są konwertowane z JSON, ale mają różne zastosowania. Do dokumentacji technicznej używaj tego narzędzia do generowania tabel Markdown, do stron internetowych — narzędzia JSON na HTML.
Jaki jest maksymalny limit wierszy tabeli Markdown?
Narzędzie domyślnie nie nakłada górnego limitu wierszy (inaczej niż narzędzie do tabel HTML), ponieważ tabele Markdown to czysty tekst, co oznacza mniejsze obciążenie renderowania przeglądarki. Zalecenia: ① >1000 wierszy — podziel na wiele tabel lub strony; ② przy osadzaniu w GitHub README pojedynczy plik nie powinien przekraczać 1MB; ③ przy osadzaniu w Notion/Confluence przestrzegaj ograniczeń platformy.
Jak dostosować nagłówek Caption?
W trybach «Multi/Split» Caption automatycznie używa nazwy pola tablicy najwyższego poziomu (`### users`, `### orders`). W trybie «Single» zaznacz «Include Caption» i wprowadź niestandardowy tekst nagłówka. Caption to nagłówek `### H3` trzeciego poziomu, zgodny ze specyfikacją struktury dokumentu Markdown.
Czy dane są przesyłane na serwer? Czy prywatność jest bezpieczna?
Całkowicie lokalnie w przeglądarce. Całe parsowanie JSON, spłaszczanie zagnieżdżeń, generowanie Markdown i operacje kopiowania/pobierania są wykonywane przez JavaScript w przeglądarce, pliki są odczytywane tylko przez lokalny FileReader, nic nie jest wysyłane na serwer. JSON zawierający poufne odpowiedzi API i niepubliczne pola biznesowe może być bezpiecznie używany — zamknięcie strony usuwa wszystkie dane.
Rozwiązywanie problemów
Komunikat błędu „Wprowadź dane JSON”
Lewe pole wejściowe jest puste lub zawiera tylko białe znaki. Upewnij się, że wklejono poprawną zawartość JSON, lub kliknij «Sample» aby załadować przykładowe dane, lub kliknij «Upload» aby wybrać plik .json/.txt.
Błąd „Unexpected token ... in JSON at position N”
Format JSON jest nieprawidłowy. Najczęstsze przyczyny: ① dodatkowy przecinek na końcu (np. [{},{},]); ② użycie pojedynczych cudzysłowów zamiast podwójnych; ③ użycie składni obiektu JS ({key: value}) zamiast JSON ({"key": "value"}). Najpierw sprawdź i napraw za pomocą narzędzia JSON Formatter.
Wygenerowana tabela ma tylko nagłówek bez wierszy danych
Dane JSON to pusta tablica [] lub pusty obiekt {}. To narzędzie zwraca komentarz «<!-- No valid objects found -->» dla pustych tablic. Dodaj co najmniej jeden obiekt danych do źródłowego JSON.
W trybie Flatten nazwy kolumn są zbyt długie (np. user.profile.address.city.country.code)
Przy zbyt głębokim zagnieżdżeniu zaleca się: ① przełączenie na tryb «First Key» (pobiera tylko pola najwyższego poziomu, zagnieżdżone obiekty jako JSON w jednej kolumnie); ② zmniejszenie Max Depth (z 6 do 3-4); ③ modyfikację struktury źródłowego JSON w celu usunięcia niepotrzebnego zagnieżdżenia; ④ kliknięcie przycisku Reset na pasku narzędzi, aby przywrócić domyślne ustawienia Flatten.
Tryb Multi nie generuje wielu tabel
Upewnij się, że źródłowy JSON jest strukturą obiektu (nie czystą tablicą) i zawiera co najmniej jedno pole będące „tablicą, której elementami są obiekty” (np. `"users": [{...}, {...}]`). Jeśli wszystkie pola najwyższego poziomu to ciągi/liczby/same obiekty zagnieżdżone, strategia «Multi» powróci do trybu pojedynczej tabeli «Single».
Po Beautify Keys nagłówki są puste
Funkcja Beautify Keys przekształca snake_case na Title Case, ale nie zmienia kluczy zaczynających się od wielkich liter lub znaków specjalnych (`__proto__`, `constructor`). Są to słowa zastrzeżone JavaScript. Zaleca się najpierw zmianę nazw w źródłowym JSON, a następnie użycie narzędzia.
Wygenerowany Markdown renderuje się jako pusty na GitHub
Bardzo rzadkie. Najczęstsze przyczyny: ① niezeskalowany znak `|` w tabeli (to narzędzie eskaluje automatycznie, ale może zostać uszkodzony po ręcznej modyfikacji); ② komórki zawierają znaczniki HTML (GitHub domyślnie nie renderuje, narzędzie już przekształciło `\n` na `<br>`); ③ kodowanie pliku nie jest UTF-8.
Pobrany plik table.md jest pusty w edytorze
Pobrany plik zawiera tylko kod tabeli Markdown (zaczynający się od znaków `|` `-`), nie zawiera pełnego szkieletu dokumentu Markdown (`# Tytuł` `## Rozdział`). Jest to zaprojektowane jako fragment kodu do osadzenia w istniejącym dokumencie Markdown. Ręcznie dodaj `# Tytuł` na początku pliku lub wklej bezpośrednio w odpowiednie miejsce istniejącego pliku .md.
Chińskie znaki w nagłówkach są zniekształcone
Jeśli klucze źródłowego JSON zawierają chińskie znaki, upewnij się, że sam plik źródłowy jest w kodowaniu UTF-8. JSON skopiowany z Excela mógł zostać przekonwertowany na GBK. Najpierw przekonwertuj na UTF-8 za pomocą narzędzia do konwersji kodowania, a następnie wklej.
Chcesz zbiorczo zmodyfikować wygenerowane tabele (zamiana logo firmy / zmiana kolorów itp.)
Po wygenerowaniu skopiuj tabelę Markdown po prawej stronie i użyj sed/własnego skryptu do zbiorczego zastąpienia atrybutów stylu. Sama tabela Markdown nie obsługuje kolorów (w przeciwieństwie do HTML). Jeśli potrzebujesz kolorów, użyj narzędzia JSON na HTML (generuje `<table>` i dodaje style inline).
Po wykluczeniu pustych kolumn tabela stała się szersza
Exclude Empty wyklucza kolumny, gdzie „wszystkie wiersze są null/undefined/puste”. Jeśli kolumna ma wartość tylko w jednym wierszu, a pozostałe są puste, nie zostanie wykluczona (to prawidłowe zachowanie). Jeśli potrzebujesz wykluczyć kolumny rzadkie, najpierw wyczyść dane w źródłowym JSON.
Historia zniknęła
Historia jest przechowywana w localStorage przeglądarki. Czyszczenie danych przeglądarki / przełączanie w tryb incognito / korzystanie z innej przeglądarki spowoduje utratę historii. To narzędzie nie przesyła historii na żaden serwer, więc synchronizacja między urządzeniami nie jest możliwa.
Słownik
- Tabela Markdown
- Czysto tekstowa tabela zbudowana ze znaków | i -, zdefiniowana przez specyfikację GFM (GitHub Flavored Markdown). Kod generowany przez to narzędzie ściśle odpowiada tej składni i może być bezpośrednio renderowany w GitHub/GitLab/Notion/Confluence.
- GFM
- Skrót od GitHub Flavored Markdown — dialekt rozszerzony przez GitHub na standardowym Markdown, obejmujący tabele, przekreślenia, listy zadań, automatyczne linki itp. Tabele generowane przez to narzędzie są zgodne ze specyfikacją GFM.
- CommonMark
- Znormalizowana specyfikacja składni Markdown (ogłoszona w 2014). Składnia tabel GFM jest rozszerzeniem CommonMark. Wynik tego narzędzia może być poprawnie renderowany zarówno przez ścisłe parsery CommonMark, jak i parsery GFM.
- Tablica JSON
- Kolekcja obiektów w nawiasach kwadratowych [...]. To narzędzie traktuje każdy obiekt w tablicy jako jeden wiersz tabeli. Pusta tablica nie generuje tabeli (wyświetla podpowiedź).
- Obiekt JSON
- Kolekcja par klucz-wartość w nawiasach klamrowych {}. To narzędzie traktuje każdy klucz obiektu jako nagłówek, a wartość jako komórkę. Pojedynczy obiekt jest automatycznie opakowywany w jednowierszową tabelę.
- Spłaszczanie zagnieżdżeń (Flatten)
- Rekurencyjne rozwijanie zagnieżdżonych obiektów do płaskich nazw kluczy rozdzielonych kropką. Przykład: {user:{name:'A'}} → 'user.name'. To narzędzie obsługuje automatyczne spłaszczanie na głębokość 1-6 poziomów z konfigurowalnym separatorem.
- Upiększanie kluczy (Beautify Keys)
- Reguła przekształcania kluczy snake_case lub camelCase na Title Case: user_name → User Name, userProfileId → User Profile Id. Jedna z wyróżniających możliwości tego narzędzia.
- Inteligentny podział na wiele tabel (Multi-Table Split)
- Rozpoznawanie pól tablicowych najwyższego poziomu JSON (users, orders itp.) i automatyczne dzielenie na wiele niezależnych tabel Markdown. Jedna z wyróżniających możliwości tego narzędzia — każda podzielona tabela automatycznie otrzymuje nagłówek ###.
- Składnia wyrównania (Alignment)
- Wiersz separatora nagłówka tabeli GFM obsługuje kontrolę wyrównania przez znak :: :- wyrównanie do lewej, :-: do środka, -: do prawej. To narzędzie udostępnia trzy przyciski do przełączania jednym kliknięciem.
- Kolumna indeksu wierszy (Index Column)
- Kolumna numeracji # dodawana po lewej stronie tabeli (zaczynając od 1), tekst nagłówka konfigurowalny. To narzędzie domyślnie wyłączone, po włączeniu ułatwia odwoływanie się do numerów wierszy w dokumentach.
- Caption
- Nagłówek H3 trzeciego poziomu (###) w Markdown. To narzędzie automatycznie dodaje tę etykietę nad każdą wygenerowaną tabelą (domyślnie używając nazwy pola tablicy najwyższego poziomu lub niestandardowego tekstu użytkownika). Pomocne zarówno w nawigacji po dokumencie, jak i SEO.
- Sortowanie kolumn (Sort Columns)
- Przełącznik sortujący wszystkie kolumny tabeli alfabetycznie. Po włączeniu kolejność kolumn jest stabilna i spójna przy porównywaniu wielu dokumentów, a zmiany widoczne w narzędziach diff są łatwiejsze do zidentyfikowania.
- Wykluczanie pustych kolumn (Exclude Empty)
- Automatyczne wykluczanie kolumn, gdzie wszystkie wiersze mają wartość null/undefined/pusty ciąg. Domyślnie wyłączone; po włączeniu znacząco zmniejsza szerokość tabel z danymi rzadkimi.
- Eskalowanie Markdown (Escape)
- Przekształcanie znaków o specjalnym znaczeniu w tabelach Markdown (|, \, znak nowej linii) na bezpieczną formę (\|, \\, <br>) aby zapobiec uszkodzeniu składni tabeli. To narzędzie wykonuje to eskalowanie automatycznie — kluczowa przewaga nad konkurencją.
- Historia lokalna (localStorage)
- Lokalny magazyn klucz-wartość przeglądarki (pojemność około 5-10MB). To narzędzie używa localStorage do trwałego przechowywania ostatnich danych wejściowych, umożliwiając szybkie odzyskanie po odświeżeniu lub przypadkowym zamknięciu strony.
- Ochrona przed drganiem (Debounce)
- Technika optymalizacji wydajności frontendu: łączenie wywołań zwrotnych zdarzeń o wysokiej częstotliwości (takich jak wprowadzanie) w jedno wykonanie po ostatnim wyzwoleniu. To narzędzie ustawia 500 ms ochrony przed drganiem, aby zapobiec opóźnieniom podczas parsowania dużych plików.
Porównanie 4 trybów obsługi zagnieżdżonych obiektów
Pasek narzędzi oferuje 4 tryby dla różnych scenariuszy zagnieżdżeń. Zaleca się wybór na podstawie złożoności struktury JSON:
| Tryb | Zachowanie przetwarzania | Przykład nazwy kolumny | Scenariusz zastosowania |
|---|---|---|---|
Flatten | Rekurencyjne rozwijanie zagnieżdżonych obiektów do nazw kluczy z notacją kropkową (głębokość 1-6) | user.name / profile.role | Rzeczywiste struktury API jak GitHub/Stripe/Notion; gdy każdy atrybut ma być w osobnej kolumnie |
First Key | Pobieranie tylko kluczy pierwszego poziomu obiektu, zagnieżdżone obiekty/tablice jako ciąg JSON w jednej kolumnie | user / tags | Gdy struktura zagnieżdżenia nie jest stała lub zbyt głęboka (>6 poziomów); potrzebny tylko przegląd pól najwyższego poziomu |
Stringify | Wymuszone traktowanie wszystkich wartości jako ciągi, zagnieżdżone obiekty bezpośrednio przez JSON.stringify z eskalowaniem | i \ | user (jako pełny JSON) | Scenariusze debugowania: gdy chcesz zachować oryginalną strukturę JSON do wizualnej inspekcji |
Raw JSON | Serializacja całego wiersza danych do pojedynczej kolumny value z sformatowanym blokiem JSON w komórce | value (pełny JSON) | Wyświetlanie fragmentów kodu, agregacja logów, gdy chcesz zachować oryginalną formę JSON |
Porównanie 3 strategii generowania tabel
Lista rozwijana Strategy na pasku narzędzi kontroluje sposób obsługi JSON z wieloma polami tablicowymi:
| Strategia | Dane wejściowe | Format wyjściowy | Kiedy używać |
|---|---|---|---|
Single | Tablica JSON lub pojedynczy obiekt | 1 tabela, bez nagłówka (H3) | Scenariusze z czystą tablicą (najczęstsze) |
Multi | Obiekt z wieloma polami tablicowymi (np. {users:[...], orders:[...]}) | Każda tablica → 1 tabela + nagłówek ### | Agregacja wielu obiektów biznesowych (np. dane dashboard frontendu) |
Split | Dowolny obiekt | Wymuszone wyodrębnienie wszystkich pól tablicowych najwyższego poziomu, pola niebędące tablicami ignorowane | Gdy chcesz wyraźnie zobaczyć tylko części tablicowe |
14 konfigurowalnych opcji paska narzędzi — ściągawka
Wszystkie 14 konfigurowalnych opcji paska narzędzi i ich efekty dla szybkiego wyboru kombinacji:
| Opcja | Typ | Efekt |
|---|---|---|
nestMode | select | Obsługa zagnieżdżeń: Flatten / First Key / Stringify / Raw JSON |
maxDepth | select | Maksymalna głębokość trybu Flatten (1-6) |
separator | text | Separator nazw kluczy w trybie Flatten (domyślnie ., maks. 3 znaki) |
strategy | select | Strategia generowania tabel: Single / Multi / Split |
align | button | Wyrównanie: do lewej / do środka / do prawej |
includeIndex | checkbox | Dodaj kolumnę # po lewej stronie |
indexHeader | text | Tekst nagłówka kolumny indeksu (domyślnie #) |
sortColumns | checkbox | Sortuj wszystkie kolumny alfabetycznie |
beautifyKeys | checkbox | Klucze snake/camelCase → Title Case |
excludeEmpty | checkbox | Wyklucz kolumny z pustymi wszystkimi wierszami |
includeCaption | checkbox | Dodaj nagłówek ### nad każdą tabelą |
caption | text | Niestandardowy tekst Caption (aktywny w strategii Single) |
indent | select | Wcięcie w trybie Raw JSON (0/2/4) |
Reguły eskalowania komórek Markdown — ściągawka
Narzędzie automatycznie eskaluje znaki specjalne w komórkach, które mogłyby uszkodzić znaczenie tabeli:
| Znak wejściowy | Format wyjściowy | Powód eskalowania |
|---|---|---|
| (potok) | \| | Separator kolumn tabeli Markdown |
\ (odwrotny ukośnik) | \\ | Sam znak eskalowania Markdown |
\n (nowa linia) | <br> | Rzeczywiste nowe linie niedozwolone w komórkach tabeli Markdown |
\r (powrót karetki) | (usuwane) | Pozostałość znaku nowej linii Windows |
null / undefined | (pusty ciąg) | Domyślny symbol zastępczy, konfigurowalny przez Exclude empty |
Obiekt (długość > 60) | JSON obcięty do 60 znaków + … | Zapobiega rozrywaniu tabeli przez zbyt długie pojedyncze komórki |
Privacy & Security
Wszystkie operacje parsowania JSON, spłaszczania zagnieżdżeń, generowania Markdown, kopiowania i pobierania w tym narzędziu są wykonywane całkowicie lokalnie w przeglądarce przez JavaScript. Wprowadzone dane JSON i wygenerowany kod Markdown nie są przesyłane na żaden serwer, nie są rejestrowane, buforowane ani przechowywane w chmurze. Poufne JSON-y zawierające niepublikowane odpowiedzi API i wewnętrzne pola biznesowe mogą być bezpiecznie używane — zamknięcie strony usuwa wszystkie dane.
Authoritative References
- GitHubSpecyfikacja GitHub Flavored Markdown — Tabele
- CommonMarkSpecyfikacja CommonMark
- MarkdownOficjalna dokumentacja Markdown (Daring Fireball)
- MDNMDN — JSON.parse / JSON.stringify
- GitHubDokumentacja GitHub — Organizacja informacji w Markdown
- LodashLodash — flatten / flattenDeep
- jqPodręcznik jq — obsługa zagnieżdżonych obiektów
- JSON Compress
- Konwerter CSV na JSON
- JSON na CSV
- JSON Diff
- JSON Escape / Unescape
- Spłaszczanie JSON
- JSON Formatter
- Generator JSON
- Zapytanie JSONPath
- Scal JSON
- Naprawa JSON
- Walidator JSON Schema
- Sortowanie JSON
- JSON Stringify
- JSON do HTML
- JSON do Javy
- JSON na Markdown
- JSON do SQL
- JSON do TOML
- JSON do TypeScript
- XML na JSON
- Konwertuj JSON do XML
- YAML na JSON
- JSON → YAML
- JSON na Go
- JSON na Rust
- JSON to Swift
- JSON na C#
- JSON na C++
- JSON na PHP
- JSON na Python