JSON'den Markdown'a
Ücretsiz çevrimiçi JSON'den Markdown'a dönüştürme aracı. JSON dizilerini veya iç içe nesneleri tek tıklamayla GitHub README, teknik dokümantasyon ve bloglarda kullanıma hazır GFM Markdown tablo koduna dönüştürün. 4 iç içe işleme modu, ayarlanabilir düzleştirme derinliği (1-6), özel ayırıcı, anahtar güzelleştirme (user_name → User Name), sütun sıralama, akıllı çoklu tablo bölme, akıllı null yer tutucular, hizalama, 9 seçenek canlı önizleme. Tamamen tarayıcıda yerel.
İlgili Öneriler
JSON'den Markdown'a Dönüşüm ve Markdown Tabloları Hakkında
JSON'den Markdown'a dönüştürücü, JSON veri yapılarını otomatik olarak standart GFM (GitHub Flavored Markdown) tablo koduna dönüştüren pratik bir araçtır. Geliştiricileri elle `|` / `-` tablo ayırıcıları yazma tekrarından kurtarır ve API'den dönen iç içe verileri, yapılandırma dosyalarını veya herhangi bir JSON yapısını hızlıca teknik dokümantasyon, README, blog olarak göstermek için özellikle uygundur.
Markdown tablosu, John Gruber tarafından 2004'te Markdown sözdiziminde önerilen saf metin tablo gösterimidir: `|` hücreleri ayırır, `-` başlık ayırıcı satırını tanımlar, isteğe bağlı `:` hizalamayı kontrol eder. GFM (GitHub Flavored Markdown) standart Markdown'ı temel alarak tablo sözdizimini genişletmiştir ve GitHub, GitLab, Bitbucket, Notion, Confluence, Slack, Discord, VS Code gibi modern platformların çoğunda yerel olarak desteklenir. Bu aracın ürettiği kod GFM spesifikasyonuna sıkı sıkıya bağlıdır.
Piyasadaki JSON'den Markdown'a araçları üç kategoriye ayrılır: birincisi yalnızca Markdown kod dizesi üretir; ikincisi gelişmiş yapılandırma sunar (derinlik düzleştirme/anahtar güzelleştirme/çoklu tablo bölme) — bu araç bunu temsil eder; üçüncüsü Markdown ters ayrıştırmayı (Markdown → JSON) destekler.
'İç içe düzleştirme + anahtar güzelleştirme' bu aracın rakiplere göre en büyük farkıdır: geleneksel araçlar `{user:{name:'Alice'}}` ile karşılaştığında doğrudan `{"name":"Alice"}` dizesi olarak görüntüler, bu araç ise özyinelemeli olarak `user.name` sütununa genişletir (en fazla 6 katman derinlik, ayırıcı yapılandırılabilir) ve `user_name`/`userProfileId` otomatik olarak `User Name`/`User Profile Id` stili başlıklara dönüştürür. Yani GitHub API, Stripe API, Notion API gibi iç içe yapısı karmaşık gerçek iş verilerini önceden jq/lodash ile düzleştirmeden doğrudan işleyebilir.
Bir diğer farklılaştırıcı avantaj 'akıllı çoklu tablo bölme'dir: JSON üst düzeyinde birden fazla dizi alanı olduğunda (`{users:[...], orders:[...], products:[...]}` gibi), araç otomatik tanır, her diziyi bağımsız Markdown tablosuna böler ve her tablo üzerinde otomatik `### AlanAdı` başlığı (H3) oluşturarak uzun belge yapısını net ve gezilebilir hale getirir.
Markdown tablosunun HTML tablosuna göre en büyük avantajı 'saf metin sürüm kontrolü'dür: `.md` dosyası git diff'te tablo satır artış/azalışlarını net gösterir, HTML tablosunun `<tr>` `<td>` etiketleri ise diff araçlarında genellikle uzun satır olarak görünür ve okunması zordur. GitHub, GitLab gibi kod barındırma platformlarının Markdown tablosunu varsayılan veri görüntüleme yöntemi olarak benimsemesinin nedeni budur.
Kullanım senaryoları
- Teknik dokümantasyon yazarken API'den dönen JSON verilerini Markdown tablosuna dönüştürüp görüntüleme
- GitHub README'de yapılandırma verilerini, parametre açıklamalarını, API yanıt örneklerini gösterme gerektiğinde
- Veri raporlarını Markdown tablosu olarak analiz sonuçlarını sunma (dışa aktarıldıktan sonra Notion/Confluence'a gömülebilir)
- API dokümantasyonunda (Swagger/Redoc/OpenAPI) arayüz veri yapılarını net gösterme
- Statik site oluşturucularının doküman bölümleri (VuePress/Docusaurus/Hexo)
- Slack/Discord/kurumsal mesajlaşmada yapılandırılmış veri paylaşımı (GFM bu platformlarda yerel olarak desteklenir)
- VS Code/JetBrains IDE Markdown Preview'da tablo efektini anında önizleme
- Sürüm kontrolü işbirliği: Markdown tablosu saf metindir, git diff dostudur, Code Review için uygundur
- Eğitim senaryosu: veri yapısı dersinde öğrencilerin gönderdiği iç içe JSON ödevlerini tabloya dönüştürüp birleşik görüntüleme ve notlandırma
- E-posta şablonları (Markdown destekli e-posta istemcileri: Bear Mail, HEY)
- Notion veritabanı içe aktarma: önce bu araçla Markdown tablosu oluşturun, ardından Notion'a yapıştırın
- Uluslararasılaştırma senaryosu: JSON düzleştirme + anahtar güzelleştirme sonrası Çince-İngilizce belgeler aynı yapıyı paylaşır
Nasıl Kullanılır
- JSON dizisini (önerilir) veya iç içe nesneyi sol düzenleyiciye yapıştırın veya 'Sample' tıklayarak 3 iç içe kullanıcı örneğini yükleyin veya 'Upload' tıklayarak .json/.txt dosyası yükleyin
- Araç çubuğundan iç içe işleme modunu seçin ('Flatten' önerilir), JSON'da çok katmanlı iç içe yapı varsa Max Depth'i artırın
- Özel ayırıcı gerekiyorsa Separator alanına girin (varsayılan `.`, `_` / `-` / `/` olarak değiştirilebilir)
- Strategy seçin: basit diziler için 'Single', çoklu dizi alanları için 'Multi' otomatik bölme, zorla bölme için 'Split'
- Stil seçeneklerini işaretleyin: Sort columns, Beautify keys, Exclude empty, Include Caption, Include Index
- Hizalamayı seçin: sola / ortaya / sağa
- 'Convert' düğmesine tıklayın (veya Enter tuşuna basın) dönüşümü tetiklemek için — girişte 500ms debounce koruması vardır
- Sağda oluşan Markdown tablo kodunu inceleyin, memnunsanız 'Copy' ile kodu kopyalayıp Markdown belgesine yapıştırın veya 'Download' ile table.md olarak indirin
Özellikler
- İç içe nesne otomatik düzleştirme: `{user:{name,age}}` yapısını `user.name`, `user.age` gibi nokta gösterimli anahtar adlarına özyinelemeli olarak genişletir (derinlik 1-6), elle düzleştirme betiği gerekmez
- 4 iç içe işleme modu: Düzleştir (önerilir, derinlik ayarlanabilir) / İlk Katman Anahtarı (iç içe nesneleri tek sütun JSON olarak) / Dizeleştir (iç içe nesneleri JSON dizesine dönüştür) / Raw JSON (her satır tam JSON bloğu olarak)
- Akıllı çoklu tablo bölme: JSON üst düzey dizi alanlarını (`users`, `orders`) tanır, otomatik olarak bağımsız Markdown tablolarına böler ve ### başlıkları oluşturur, karmaşık iş verileri için ideal
- Özel ayırıcı: varsayılan `.` (Lodash/MongoDB uyumlu), araç çubuğundan `_` / `-` / `/` olarak değiştirilebilir
- Anahtar adı güzelleştirme (camelCase/snake_case → Title Case): `user_name` → `User Name`, `userProfileId` → `User Profile Id` — başlıklar insan tarafından okunabilir hale gelir
- Sütun sıralama anahtarı: tüm başlık sütunlarını tek tıklamayla alfabetik sıralar, belgeleri karşılaştırırken sütun sırasını kararlı tutar
- Boş değer sütunu hariç tutma: tüm satırları null/undefined/boş dize olan sütunları otomatik algılar ve hariç tutar, anlamsız sütunların yer kaplamasını önler
- 3 hizalama modu: sola (`:-`) / ortaya (`:-:`) / sağa (`-:`), radyo düğmesi ile geçiş, GFM uyumlu
- Satır indeks sütunu anahtarı: isteğe bağlı en sol `#` numara sütunu (başlık metni özelleştirilebilir), belgede satır numarası referansını kolaylaştırır
- Caption başlık anahtarı: her tablo üzerinde otomatik `### VeriAdı` üçüncü düzey başlık (H3), bölümlü belgelerde yapı netleşir, SEO'ya yardımcı olur
- Tür farkında kaçış: hücre içindeki `|` / `\` / satır sonları otomatik `\|` / `\\` / `<br>` olarak kaçışlandırılır, Markdown tablo sözdizimi bozulmasını önler
- Oluşturma istatistik geri bildirimi: alt durum çubuğunda 'N tablo × M satır × K sütun oluşturuldu' + bayt sayısı canlı gösterilir, uzun JSON hata ayıklarken veri ölçeği bir bakışta görülür
- Örnek veri + dosya yükleme: 3 yerleşik iç içe kullanıcı örneği tek tıklamayla yüklenir, sürükle-bırak veya tıklayarak .json/.txt dosyası yükleme desteği
- Tamamen tarayıcıda yerel işleme: tüm JSON ayrıştırma, iç içe düzleştirme, Markdown oluşturma, kopyalama/indirme işlemleri tarayıcıda tamamlanır, veriler hiçbir sunucuya yüklenmez
Kod Örnekleri
JavaScript: fetch + iç içe düzleştirme + Markdown çıktısı
javascriptGerçek geliştirmede en yaygın kullanım: GitHub API çağrısından sonra iç içe nesneleri nokta gösterimli anahtar adlarına düzleştirip bu araçla Markdown tablosu oluşturma.
// 1) GitHub API çağrısı ile kullanıcı listesini al
async function fetchUsers() {
const res = await fetch('https://api.github.com/users?per_page=10');
return await res.json();
}
// 2) İç içe düzleştirme fonksiyonu (bu aracın Flatten mantığına eşdeğer)
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) Düzleştirilmiş verileri Markdown tablosuna dönüştür
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) README.md'ye çıktı ver
const users = await fetchUsers();
const md = generateMarkdownTable(... [truncated]Python: Flask arka uçta Markdown raporu oluşturma
pythonArka uçta çok kaynaklı verileri birleştirdikten sonra Python ile Markdown tablosu oluşturma (ön uç bağımlılığı yok), CI/CD otomatik haftalık rapor oluşturmaya uygun.
from flask import Flask, jsonify
import json
app = Flask(__name__)
def flatten(obj, prefix='', sep='.', result=None, depth=0, max_depth=3):
"""İç içe nesneleri özyinelemeli düzleştirme"""
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]Komut Satırı: jq birleştirme + bu araçla GitHub Release Notes oluşturma
bashOperasyon senaryosu: GitHub API'den PR listesi al, jq ile birleştirip düzleştirerek nokta gösterimli anahtar adlarına dönüştür, bu araca yapıştırarak GFM Release Notes oluştur.
# 1) gh CLI ile son 50 merged PR'ı al
PR_JSON=$(gh pr list --state merged --limit 50 --json number,title,author,labels,mergedAt)
# 2) jq ile labels iç içe dizisini düzleştir
echo "$PR_JSON" | jq 'map({
number: .number,
title: .title,
author: .author.login,
labels: (.labels | map(.name) | join(", ")),
mergedAt: .mergedAt
})' > release_prs.json
# 3) Bu aracı aç, içeriği yapıştır, Strategy: "Single",
# Sort columns + Include Index işaretle, Convert tıkla, tabloyu kopyala
# 4) Release Notes'a birleştir ve Release oluştur
gh release create v2.1.0 -F RELEASE.md -t "v2.1.0"Sık Sorulan Sorular
JSON verilerini Markdown tablosuna nasıl dönüştürürüm?
JSON dizisini (her öğe bir nesne) veya tek nesneyi sol giriş kutusuna yapıştırın, araç çubuğundaki 'Convert' düğmesine tıklayın — sağda otomatik olarak GFM standart Markdown tablo kodu oluşturulur. Kod doğrudan GitHub README, Markdown blog, Confluence sayfası veya Notion belgesine yapıştırılabilir.
İç içe JSON nesneleri Markdown tablosuna dönüştürülebilir mi?
Evet. Araçta farklı senaryolara yönelik 4 iç içe işleme modu bulunur: ① Düzleştir (önerilir): `{user:{name:'Alice',age:30}}` yapısını özyinelemeli olarak `user.name`, `user.age` sütunlarına genişletir, derinlik 1-6; ② İlk Katman Anahtarı: yalnızca üst düzey alanları alır, iç içe nesneleri tek sütun JSON dizesi olarak; ③ Dizeleştir: tüm iç içe nesneleri JSON dizesine dönüştürür; ④ Raw JSON: her satır tam bir JSON bloğu olarak (kod parçacığı görüntülemeye uygun).
Düzleştirme sonrası anahtar ayırıcı değiştirilebilir mi?
Varsayılan olarak `.` kullanılır (JavaScript/MongoDB/Lodash uyumlu). `user_name` (snake_case) veya `user/name` (yol stili) için araç çubuğundaki 'Separator' alanında değiştirebilirsiniz (en fazla 3 karakter).
Anahtar güzelleştirme (Beautify keys) nedir?
'Beautify keys' işaretlendiğinde `user_name`, `userProfileId` otomatik olarak `User Name`, `User Profile Id` Title Case'e dönüştürülür. Dahili olarak: alt çizgi/tire boşluğa dönüştürülür, camelCase büyük harflerinden önce boşluk eklenir, her kelimenin ilk harfi büyük yapılır. Bu, başlıkları insanlar için daha okunabilir hale getirir, özellikle README ve API dokümantasyonu gibi uzun Markdown'larda faydalıdır.
Birden fazla tabloya nasıl bölerim?
Araç çubuğundaki 'Strategy' açılır menüsü: ① Single (varsayılan) — tüm JSON tek tablo (saf dizi senaryoları için ideal); ② Multi — JSON çoklu dizi alanı içeren bir nesne olduğunda, her dizi otomatik bağımsız tabloya bölünür ve ### başlık oluşturulur (`{users:[...], orders:[...]}` gibi senaryolar için ideal); ③ Split — zorla bölme modu, yalnızca dizi alanları işlenir, diğer alanlar yok sayılır.
Oluşturulan Markdown tablosu doğrudan GitHub'da kullanılabilir mi?
Evet. Araç tarafından oluşturulan Markdown tablosu CommonMark ve GFM uyumludur, GitHub README, GitLab belgeleri, Notion sayfaları, VuePress/Docusaurus/Hexo blogları, Slack/Discord mesajları, VS Code Markdown Preview — GFM destekleyen tüm platformlarda doğrudan kullanılabilir.
Birden fazla Markdown tablosu toplu oluşturulabilir mi?
Evet. Strategy'yi 'Multi' veya 'Split' yapın — araç JSON üst düzey dizi alanlarını (`users`/`products`/`orders`) akıllıca tanır ve her dizi için bağımsız Markdown tablosu oluşturur, her tablo üzerinde `### AlanAdı` başlığı oluşturur. Uzun belgelerde düzenli görüntüleme için kullanışlıdır.
Başlık sırası nasıl kontrol edilir?
Araç varsayılan olarak JSON'daki her nesnenin anahtarlarının ilk görünme sırasını başlık sırası olarak kullanır. Alfabetik sıralama için 'Sort columns' işaretleyin. Tam özel sıralama için 'Column order' gelişmiş özelliği (yakında).
Çok fazla boş sütun varsa ne yapmalı?
'Exclude empty' işaretleyin — araç tüm satırları null/undefined/boş olan sütunları otomatik algılar ve hariç tutar. Seyrek veriler (yalnızca bazı kullanıcılar belirli alanları doldurduğunda) için özellikle faydalıdır, tablo genişliğini önemli ölçüde azaltır.
Hücre içindeki | karakteri tabloyu bozar mı?
Hayır. Araç hücre içindeki `|` → `\|`, `\` → `\\`, satır sonlarını → `<br>` olarak otomatik kaçışlandırır, oluşturulan Markdown tablosunun tüm renderleyicilerde kaymamasını sağlar. Bu, rakip araçlara göre önemli bir yükseltmedir — çoğu rakip araç kaçış yapmaz, `|` içeren veriler kopyalandıktan sonra tablo bozulur.
Markdown tablosu ile HTML tablosu arasındaki fark nedir?
Markdown tablosu saf metin formatıdır (`|` `-` sözdizimi), teknik dokümantasyon, README, blog, sürüm kontrolü işbirliği için uygundur — sözdizimi özlü ve okunabilir; HTML tablosu stilli web sayfası formatıdır (`<table>` `<tr>` etiketleri), CSS stilleri, duyarlı düzen ve erişilebilirlik ARIA etiketleri gerektiren ön uç sayfaları için uygundur. Her ikisi de JSON'dan dönüştürülür ancak uygulama senaryoları farklıdır. Teknik dokümantasyon için bu araçla Markdown tablosu oluşturun, web sayfaları için JSON'dan HTML'e aracıyla HTML tablosu oluşturun.
Markdown tablosunun maksimum satır sınırı nedir?
Araç varsayılan olarak satır sayısı üst sınırı koymaz (HTML tablo aracından farklı). Markdown tablosu saf metin olduğundan tarayıcı render yükü daha düşüktür. Ancak öneriler: ① >1000 satır — birden fazla tabloya veya sayfalamaya bölün; ② GitHub README'ye gömerken tek dosya 1MB'ı aşmamalı; ③ Notion/Confluence'a gömerken platform sınırlamalarına uyun.
Caption başlığı nasıl özelleştirilir?
'Multi/Split' stratejilerinde Caption otomatik olarak üst düzey dizi alan adını kullanır (`### users`, `### orders`). 'Single' stratejisinde 'Include Caption' işaretleyip özel başlık metni girebilirsiniz. Caption, Markdown belge yapısı spesifikasyonuna uygun `### H3` üçüncü düzey başlıktır.
Veriler sunucuya yüklenir mi? Gizlilik güvenli mi?
Tamamen tarayıcıda yerel olarak çalışır. Tüm JSON ayrıştırma, iç içe düzleştirme, Markdown oluşturma, kopyalama/indirme işlemleri tarayıcıda JavaScript ile yapılır, dosya okuma yalnızca yerel FileReader üzerinden işlenir, hiçbir sunucuya gönderilmez. Hassas API yanıtları ve yayınlanmamış iş alanları içeren JSON'lar güvenle kullanılabilir — sayfayı kapatmak tüm verileri siler.
Sorun Giderme
'JSON verisi girin' veya benzeri hata mesajı
Sol giriş kutusu boş veya yalnızca boşluk karakterleri içeriyor. Geçerli JSON içeriğinin yapıştırıldığından emin olun veya 'Sample' tıklayarak örnek veri yükleyin veya 'Upload' tıklayarak .json/.txt dosyası seçin.
'Unexpected token ... in JSON at position N' hatası
JSON formatı hatalı. Yaygın nedenler: ① sonda fazladan virgül ([{},{},] gibi); ② çift tırnak yerine tek tırnak kullanımı; ③ JSON ({"key": "value"}) yerine JS nesne gösterimi ({key: value}) kullanımı. Önce JSON Biçimlendirici aracıyla doğrulayıp onarın.
Oluşan tabloda yalnızca başlık var, veri satırı yok
JSON verisi boş dizi [] veya boş nesne {}. Bu araç boş dizi için '<!-- No valid objects found -->' yorumu döndürür. Kaynak JSON'a en az bir nesne verisi ekleyin.
Flatten modunda sütun adları çok uzun (user.profile.address.city.country.code gibi)
İç içe katman çok derin olduğunda öneriler: ① 'First Key' moduna geçin (yalnızca üst düzey alanları alır, iç içe nesneler tek sütun JSON olarak); ② Max Depth'i azaltın (6'dan 3-4'e); ③ kaynak JSON yapısını değiştirip gereksiz iç içe yapıyı azaltın; ④ araç çubuğundaki Reset düğmesiyle varsayılan Flatten ayarlarına dönün.
Çoklu tablo bölme modunda birden fazla tablo oluşmuyor
Kaynak JSON'un nesne yapısında (saf dizi değil) olduğundan ve alanların en az bir 'öğeleri nesne olan dizi' (`"users": [{...}, {...}]` gibi) içerdiğinden emin olun. Üst düzey alanların tümü dize/sayı/iç içe nesnenin kendisiyse, 'Multi' stratejisi 'Single' tek tablo moduna geri döner.
Beautify Keys sonrası başlıklar boş çıktı
Beautify Keys işlevi snake_case'i Title Case'e dönüştürür ancak orijinal olarak büyük harf/özel karakterle başlayan anahtarları (`__proto__`, `constructor`) değiştirmez. Bunlar JavaScript ayrılmış sözcükleridir. Kaynak JSON'da önce yeniden adlandırma yapıp sonra aracı kullanmanız önerilir.
Oluşan Markdown, GitHub'da boş olarak render ediliyor
Çok nadirdir. Yaygın nedenler: ① tabloda kaçışlanmamış `|` karakteri var (bu araç otomatik kaçışlar, ancak elle değişiklik sonrası bozulabilir); ② hücrede HTML etiketi var (GitHub varsayılan olarak render etmez, araç zaten `\n`'i `<br>`'e dönüştürdü); ③ dosya kodlaması UTF-8 değil.
İndirilen table.md dosyası düzenleyicide boş görünüyor
İndirilen dosya yalnızca Markdown tablo kodu içerir (`|` `-` karakterleriyle başlar), tam Markdown belge iskeleti (`# Başlık` `## Bölüm`) içermez. Bu, mevcut Markdown belgesine gömmek için parça kod olarak tasarlanmıştır. Dosya başına elle `# Başlık` gibi başlıklar ekleyin veya doğrudan mevcut .md dosyasının ilgili konumuna yapıştırın.
Başlıktaki Çince karakterler bozuk görünüyor
Kaynak JSON'un anahtarları Çince karakterler içeriyorsa, kaynak dosyanın kendisinin UTF-8 kodlamalı olduğundan emin olun. Excel'den kopyalanan JSON GBK'ye dönüştürülmüş olabilir. Önce kodlama dönüştürme aracıyla UTF-8'e dönüştürüp sonra yapıştırın.
Oluşan tabloları toplu değiştirmek istiyorum
Oluşturduktan sonra sağdaki Markdown tablosunu Copy yapıp sed/kendi betiğinizle stil özniteliklerini toplu değiştirin. Markdown tablosunun kendisi renkleri desteklemez (HTML'den farklı). Renk gerekiyorsa JSON'dan HTML'e dönüştürme aracını kullanın.
Boş sütun hariç tuttuktan sonra tablo tam tersine genişledi
Exclude Empty, 'tüm satırları null/undefined/boş dize olan' sütunları hariç tutar. Bir sütunda yalnızca bir satırda değer varsa ve diğer satırların tümü boşsa, o sütun hariç tutulmaz (bu doğru davranıştır). Seyrek sütunları hariç tutmanız gerekiyorsa, kaynak JSON'da önce temizlik yapın.
Geçmiş kayboldu
Geçmiş, tarayıcının localStorage'ında saklanır. Tarayıcı verilerini temizleme / gizli moda geçme / farklı tarayıcı kullanma geçmişin kaybolmasına neden olur. Bu araç geçmişi hiçbir sunucuya yüklemez, bu nedenle cihazlar arası senkronizasyon mümkün değildir.
Sözlük
- Markdown Tablosu
- | ve - karakterlerinden oluşan, GFM spesifikasyonuyla tanımlanan saf metin tablo. Bu aracın ürettiği kod bu sözdizimine sıkı sıkıya uyar ve GitHub/GitLab/Notion/Confluence'da doğrudan render edilebilir.
- GFM
- GitHub Flavored Markdown'ın kısaltması, GitHub'ın standart Markdown üzerine genişlettiği lehçe. Tablo, üstü çizili, görev listesi, otomatik bağlantı vb. içerir. Bu aracın ürettiği tablolar GFM spesifikasyonuna uygundur.
- CommonMark
- Markdown sözdiziminin standartlaştırılmış spesifikasyonu (2014'te yayınlandı). GFM tablo sözdizimi CommonMark üzerine genişletilmiştir. Bu aracın çıktısı hem katı CommonMark hem de GFM ayrıştırıcılarında doğru render edilebilir.
- JSON Dizisi
- Köşeli parantez [...] içindeki nesne koleksiyonu. Bu araç dizideki her nesneyi tablonun bir satırı olarak işler. Boş dizi tablo oluşturmaz (ipucu gösterir).
- JSON Nesnesi
- Süslü parantez {} içindeki anahtar-değer çifti koleksiyonu. Bu araç nesnenin her anahtarını başlık, değerini hücre olarak işler. Tek nesne otomatik olarak tek satırlık tabloya sarılır.
- İç İçe Düzleştirme (Flatten)
- İç içe nesneleri nokta ayrılmış düz anahtar adlarına özyinelemeli genişletme. Örnek: {user:{name:'A'}} → 'user.name'. Bu araç 1-6 katman derinlik otomatik düzleştirmeyi destekler, ayırıcı yapılandırılabilir.
- Anahtar Güzelleştirme (Beautify Keys)
- snake_case veya camelCase anahtar adlarını Title Case'e dönüştürme kuralı: user_name → User Name, userProfileId → User Profile Id. Bu aracın farklılaştırıcı yeteneklerinden biri.
- Akıllı Çoklu Tablo Bölme (Multi-Table Split)
- JSON üst düzey dizi alanlarını (users, orders vb.) tanıma ve otomatik olarak birden fazla bağımsız Markdown tablosuna bölme. Bu aracın farklılaştırıcı yeteneklerinden biri — bölünen her tabloya otomatik ### başlık oluşturulur.
- Hizalama Sözdizimi (Alignment)
- GFM tablosunun başlık ayırıcı satırı : karakteriyle hizalama kontrolünü destekler: :- sola hizala, :-: ortaya hizala, -: sağa hizala. Bu araç üç düğme ile tek tıklamayla geçiş sağlar.
- Satır İndeks Sütunu (Index Column)
- Tablonun en soluna eklenen # numaralandırma sütunu (1'den başlayarak artar), başlık metni özelleştirilebilir. Bu araç varsayılan olarak kapalıdır, açıldığında belgede satır numarası referansını kolaylaştırır.
- Caption
- Markdown'da H3 üçüncü düzey başlık (###). Bu araç oluşturulan her tablonun üzerine otomatik olarak bu etiketi ekler (varsayılan olarak üst düzey dizi alan adını veya kullanıcı özel metnini kullanır). Hem belge navigasyonu hem de SEO için yararlıdır.
- Sütun Sıralama (Sort Columns)
- Tablonun tüm sütunlarını alfabetik sıraya göre sıralayan anahtar. Açıldığında, birden fazla belgeyi karşılaştırırken sütun sırası kararlı ve tutarlı olur, diff araçlarında görülen değişiklikler daha kolay tanımlanır.
- Boş Sütun Hariç Tutma (Exclude Empty)
- Tüm satırlarda belirli bir sütunun değerlerinin null/undefined/boş dize olduğunu algıladığında, o sütunu otomatik hariç tutma. Bu araç varsayılan olarak kapalıdır, açıldığında seyrek verilerin tablo genişliğini önemli ölçüde azaltır.
- Markdown Kaçışı (Escape)
- Markdown tablosunda özel anlam taşıyan karakterleri (|, \, satır sonu) güvenli forma (\|, \\, <br>) dönüştürerek tablo sözdiziminin bozulmasını önleme. Bu araç bu kaçışı otomatik yapar — rakip araçlara göre önemli bir yükseltme.
- Yerel Geçmiş (localStorage)
- Tarayıcının sağladığı yerel anahtar-değer deposu (kapasite yaklaşık 5-10MB). Bu araç, son girişi kalıcı olarak saklamak için localStorage kullanır, yenileme veya yanlışlıkla sayfayı kapatma sonrası hızlı kurtarma sağlar.
- Debounce
- Ön uç performans optimizasyon tekniği: yüksek frekanslı olayların (giriş gibi) geri çağrılarını son tetiklemeden sonra yalnızca bir kez çalışacak şekilde birleştirir. Bu araç, büyük dosya ayrıştırırken takılmayı önlemek için 500ms debounce ayarlar.
4 İç İçe Nesne İşleme Modu Karşılaştırma Tablosu
Araç çubuğu farklı iç içe senaryolara yönelik 4 mod sunar, JSON yapınızın karmaşıklığına göre seçim yapmanız önerilir:
| Mod | İşleme Davranışı | Örnek Sütun Adı | Uygulama Senaryosu |
|---|---|---|---|
Flatten | İç içe nesneleri nokta ayrılmış anahtar adlarına özyinelemeli genişletme (derinlik 1-6) | user.name / profile.role | GitHub/Stripe/Notion gibi gerçek API iç içe yapıları; her alanı ayrı sütun yapmak istediğinizde |
First Key | Yalnızca nesnenin ilk katman anahtarlarını alır, iç içe nesne/diziler tek sütun JSON dizesi olarak | user / tags | İç içe yapı sabit değilse veya çok derinse (>6 katman); yalnızca üst düzey alan özeti gerektiğinde |
Stringify | Tüm değerleri zorla dize olarak işler, iç içe nesneler doğrudan JSON.stringify sonrası | \ kaçışlandırılır | user (tam JSON olarak) | Hata ayıklama senaryosu: orijinal JSON yapısını görsel inceleme için korumak istediğinizde |
Raw JSON | Tüm satır verisini tek bir value sütununa serileştirir, hücre içi biçimlendirilmiş JSON bloğu | value (tam JSON) | Kod parçacığı görüntüleme, günlük birleştirme, orijinal JSON formunu korumak istediğinizde |
3 Tablo Oluşturma Stratejisi Karşılaştırma Tablosu
Araç çubuğundaki Strategy açılır menüsü, birden fazla dizi alanı içeren JSON'un nasıl işleneceğini kontrol eder:
| Strateji | Uygulanabilir Giriş | Çıkış Formatı | Kullanım Zamanı |
|---|---|---|---|
Single | JSON dizisi veya tek nesne | 1 tablo, başlık (H3) yok | Saf dizi senaryoları (en yaygın) |
Multi | Birden fazla dizi alanı içeren nesne ({users:[...], orders:[...]} gibi) | Her dizi → 1 tablo + ### başlık | Çoklu iş nesnesi birleştirme (ön uç dashboard verisi gibi) |
Split | Herhangi bir nesne | Üst düzey tüm dizi alanlarını zorla çıkarır, dizi olmayan alanlar yok sayılır | Yalnızca dizi kısımlarını net görmek istediğinizde |
Araç Çubuğu 14 Yapılandırılabilir Seçenek Hızlı Referans Tablosu
Araç çubuğundaki tüm 14 yapılandırılabilir seçenek ve etkileri, kombinasyonu hızlıca seçmek için:
| Seçenek | Tür | Etki |
|---|---|---|
nestMode | select | İç içe işleme: Flatten / First Key / Stringify / Raw JSON |
maxDepth | select | Flatten modunun maksimum derinliği (1-6) |
separator | text | Flatten modunun anahtar adı ayırıcısı (varsayılan ., maks 3 karakter) |
strategy | select | Tablo oluşturma stratejisi: Single / Multi / Split |
align | button | Hizalama: sola / ortaya / sağa |
includeIndex | checkbox | En sola # numara sütunu ekle |
indexHeader | text | İndeks sütunu başlık metni (varsayılan #) |
sortColumns | checkbox | Tüm sütunları alfabetik sırala |
beautifyKeys | checkbox | Anahtar adları snake/camelCase → Title Case |
excludeEmpty | checkbox | Tüm satırları boş olan sütunları hariç tut |
includeCaption | checkbox | Her tablo üzerine ### başlık ekle |
caption | text | Özel Caption metni (Single stratejisinde geçerli) |
indent | select | Raw JSON modu girintisi (0/2/4) |
Markdown Hücre Kaçış Kuralları Hızlı Referans Tablosu
Araç, hücre içinde tablo anlamını bozabilecek özel karakterleri otomatik olarak kaçışlandırır:
| Giriş Karakteri | Çıkış Formatı | Kaçış Nedeni |
|---|---|---|
| (boru) | \| | Markdown tablo sütun ayırıcısı |
\ (ters eğik çizgi) | \\ | Markdown kaçış karakterinin kendisi |
\n (satır sonu) | <br> | Markdown tablo hücresinde gerçek satır sonu kullanılamaz |
\r (satır başı) | (silinir) | Windows satır sonu karakterinin artık kısmı |
null / undefined | (boş dize) | Varsayılan yer tutucu, Exclude empty ile yapılandırılabilir |
Nesne (uzunluk > 60) | JSON 60 karaktere kırpılır + … | Tek bir hücrenin çok uzun olup tabloyu bozmasını önler |
Privacy & Security
Bu JSON'den Markdown'a dönüştürme aracındaki tüm JSON ayrıştırma, iç içe düzleştirme, Markdown oluşturma, kopyalama ve indirme işlemleri tamamen tarayıcıda yerel olarak JavaScript tarafından yürütülür. Girilen JSON verileri ve oluşturulan Markdown kodu hiçbir sunucuya yüklenmez, kaydedilmez, önbelleğe alınmaz veya bulutta saklanmaz. Yayınlanmamış API yanıtları ve dahili iş alanları içeren hassas JSON'lar güvenle kullanılabilir — sayfayı kapatmak tüm verileri siler.
Authoritative References
- GitHubGitHub Flavored Markdown Spesifikasyonu — Tablolar
- CommonMarkCommonMark Spesifikasyonu
- MarkdownMarkdown Resmi Dokümantasyonu (Daring Fireball)
- MDNMDN — JSON.parse / JSON.stringify
- GitHubGitHub Belgeleri — Markdown'da Bilgi Düzenleme
- LodashLodash — flatten / flattenDeep
- jqjq Kılavuzu — İç İçe Nesne İşleme
- JSON Compress
- CSV'den JSON'a
- JSON'den CSV'ye
- JSON Diff
- JSON Escape / Unescape
- JSON Düzleştirme
- JSON Biçimlendirici
- JSON Oluşturucu
- JSONPath Sorgu
- JSON Birleştir
- JSON Onarımı
- JSON Schema Doğrulayıcı
- JSON Sıralama
- JSON Stringify
- JSON'dan HTML'ye
- JSON'dan Java'ya
- JSON'den Markdown'a
- JSON to SQL
- JSON'dan TOML'e
- JSON'dan TypeScript'e
- XML'den JSON'a
- JSON'u XML'e donustur
- YAML'den JSON'a
- JSON → YAML Dönüştürücü
- JSON'dan Go'ya
- JSON'u Rust'a
- JSON to Swift
- JSON'dan C#'ye
- JSON'dan C++'ya
- JSON'dan PHP'ye
- JSON'u Python'a