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ć

  1. 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
  2. Wybierz tryb obsługi zagnieżdżeń na pasku narzędzi (zalecany «Flatten»), przy głębokim zagnieżdżeniu zwiększ Max Depth
  3. W razie potrzeby niestandardowego separatora wprowadź go w polu Separator (domyślnie `.`, można zmienić na `_` / `-` / `/`)
  4. Wybierz Strategy: «Single» dla prostej tablicy, «Multi» dla automatycznego dzielenia wielu tablic, «Split» dla wymuszonego dzielenia
  5. Zaznacz opcje stylu: Sort columns, Beautify keys, Exclude empty, Include Caption, Include Index
  6. Wybierz wyrównanie: do lewej / do środka / do prawej
  7. Kliknij «Convert» (lub naciśnij Enter) aby uruchomić konwersję — ochrona przed drganiem 500 ms przy wprowadzaniu
  8. 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

javascript

Najczę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

python

Agregacja 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

bash

Scenariusz 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:

TrybZachowanie przetwarzaniaPrzykład nazwy kolumnyScenariusz zastosowania
FlattenRekurencyjne rozwijanie zagnieżdżonych obiektów do nazw kluczy z notacją kropkową (głębokość 1-6)user.name / profile.roleRzeczywiste struktury API jak GitHub/Stripe/Notion; gdy każdy atrybut ma być w osobnej kolumnie
First KeyPobieranie tylko kluczy pierwszego poziomu obiektu, zagnieżdżone obiekty/tablice jako ciąg JSON w jednej kolumnieuser / tagsGdy struktura zagnieżdżenia nie jest stała lub zbyt głęboka (>6 poziomów); potrzebny tylko przegląd pól najwyższego poziomu
StringifyWymuszone 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 JSONSerializacja całego wiersza danych do pojedynczej kolumny value z sformatowanym blokiem JSON w komórcevalue (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:

StrategiaDane wejścioweFormat wyjściowyKiedy używać
SingleTablica JSON lub pojedynczy obiekt1 tabela, bez nagłówka (H3)Scenariusze z czystą tablicą (najczęstsze)
MultiObiekt z wieloma polami tablicowymi (np. {users:[...], orders:[...]})Każda tablica → 1 tabela + nagłówek ###Agregacja wielu obiektów biznesowych (np. dane dashboard frontendu)
SplitDowolny obiektWymuszone wyodrębnienie wszystkich pól tablicowych najwyższego poziomu, pola niebędące tablicami ignorowaneGdy 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:

OpcjaTypEfekt
nestModeselectObsługa zagnieżdżeń: Flatten / First Key / Stringify / Raw JSON
maxDepthselectMaksymalna głębokość trybu Flatten (1-6)
separatortextSeparator nazw kluczy w trybie Flatten (domyślnie ., maks. 3 znaki)
strategyselectStrategia generowania tabel: Single / Multi / Split
alignbuttonWyrównanie: do lewej / do środka / do prawej
includeIndexcheckboxDodaj kolumnę # po lewej stronie
indexHeadertextTekst nagłówka kolumny indeksu (domyślnie #)
sortColumnscheckboxSortuj wszystkie kolumny alfabetycznie
beautifyKeyscheckboxKlucze snake/camelCase → Title Case
excludeEmptycheckboxWyklucz kolumny z pustymi wszystkimi wierszami
includeCaptioncheckboxDodaj nagłówek ### nad każdą tabelą
captiontextNiestandardowy tekst Caption (aktywny w strategii Single)
indentselectWcię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ściowyFormat wyjściowyPowó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