JSON 轉 Markdown
免费在线 JSON 轉 Markdown 工具,把 JSON 數組或嵌套对象一鍵轉成可直接用於 GitHub README、技術文档、博客的 GFM Markdown 表格代碼。支持 4 種嵌套處理模式(拍平/首層鍵/字符串化/Raw JSON)、拍平深度 1-6 層可調、自定義分隔符、鍵名美化(user_name → User Name)、列排序、多表智能拆分(自動識别顶層數組)、null 智能占位、左右居中对齊、9 項選項實時預览,完全本地浏览器運列。
相關推薦
關於 JSON 轉 Markdown 與 Markdown 表格
JSON 轉 Markdown 工具(JSON to Markdown Converter)是一種把 JSON 數據結構自動轉換為标準 GFM(GitHub Flavored Markdown)表格代碼的實用工具。它把開發者從手寫 `|` / `-` 表格分隔符的重復劳動中解放出來,特别適合需要把 API 返回的嵌套數據、配置文件或任何 JSON 結構快速展示為技術文档、README、博客的場景。
Markdown 表格是 John Gruber 2004 年在 Markdown 語法中提出的纯文本表格表示法,由 `|` 分隔單元格、`-` 定義表頭分隔列、可選的 `:` 控制对齊。GFM(GitHub Flavored Markdown)在标準 Markdown 基础上扩展了表格語法,被 GitHub、GitLab、Bitbucket、Notion、Confluence、Slack、Discord、VS Code 等绝大多數現代平台原生支持。本工具生成的代碼嚴格遵循 GFM 規範。
市面上的 JSON 轉 Markdown 工具分三類別:第一類別仅生成 Markdown 代碼字符串(如 jsonformatter.org、convertcsv.com),強調「復制即用」;第二類別同時提供高级配置(深度拍平 / 鍵名美化 / 多表拆分),代表是本工具;第三類別支持 Markdown 反向解析(Markdown 轉 JSON),與本工具互為逆操作。
本工具的「嵌套拍平 + 鍵名美化」是相对大多數竞品的差异化亮點:传統工具遇到 `{user:{name:'Alice'}}` 會直接顯示成 `{"name":"Alice"}` 字符串,而本工具會递归展開為 `user.name` 列(最多 6 層深度,分隔符可配置),並把 `user_name` / `userProfileId` 自動轉為 `User Name` / `User Profile Id` 风格的标题,讓表頭更適合人類別阅讀。這意味着你可以直接處理 GitHub API、Stripe API、Notion API 等嵌套結構復雜的真實业務數據,無需預先用 jq / lodash 拍平。
另一個差异化亮點是「智能多表格拆分」:當 JSON 顶層有多個數組字段時(如 `{users:[...], orders:[...], products:[...]}`),工具會自動識别並把每個數組拆為独立的 Markdown 表格,每個表上方自動生成 `### 字段名` 标题(H3),讓長文档結構清晰可導航。
Markdown 表格與 HTML 表格相比,最大的優势是「纯文本可版本控制」:`.md` 文件用 git diff 可以清晰看到表格列的增减,而 HTML 表格的 `<tr>` `<td>` 在 diff 工具中通常顯示為長列難以阅讀。這也是為什麼 GitHub、GitLab 等代碼托管平台都把 Markdown 表格作為默認的數據展示方式。
適用場景
- 编寫技術文档時把 API 返回的 JSON 數據轉成 Markdown 表格展示
- GitHub README 需要展示配置數據、参數说明、API 響應示例
- 數據报告需要用 Markdown 表格呈現分析結果(支持導出後嵌入 Notion / Confluence)
- API 文档(Swagger / Redoc / OpenAPI)需要清晰展示接口返回的數據結構
- VuePress / Docusaurus / Hexo 等静態站點生成器的文档章節
- Slack / Discord / 企业 IM 中分享結構化數據(GFM 在這些平台被原生支持)
- VS Code / JetBrains IDE 的 Markdown Preview 即時預览表格效果
- 版本控制協作:Markdown 表格是纯文本,git diff 友好,便於 Code Review
- 教學場景:數據結構课程中把學生提交的嵌套 JSON 作业轉表格統一批改展示
- 邮件模板(支持 Markdown 的邮件客户端如 Bear Mail、HEY)
- Notion 數據庫導入:先用本工具生成 Markdown 表格,再粘贴到 Notion 即可
- 國際化場景:JSON 拍平 + 鍵名美化後,中英文文档共享同一份結構
使用方法
- 在左侧编辑器粘贴 JSON 數組(推薦)或嵌套对象,或點擊「Sample」加載 3 條嵌套用户示例,或點擊「Upload」上传 .json / .txt 文件
- 在工具欄選擇嵌套處理模式(推薦「Flatten(拍平)」),如果 JSON 有多層嵌套可調高 Max Depth
- 如需自定義分隔符,在 Separator 輸入框填寫(默認 `.`,可改為 `_` / `-` / `/`)
- 選擇 Strategy:單數組選「Single」;多數組字段選「Multi」自動拆分;強制拆分選「Split」
- 勾選樣式選項:Sort columns(列排序)、Beautify keys(鍵名美化)、Exclude empty(排除空列)、Include Caption(标题)、Include Index(列索引)
- 選擇对齊方式:左对齊 / 居中对齊 / 右对齊
- 點擊「Convert」按钮(或直接敲回车)触發轉換;輸入時會有 500ms 防抖保护
- 右侧查看生成的 Markdown 表格代碼,滿意後點擊「Copy」復制代碼粘贴到 Markdown 文档,或點擊「Download」下載為 table.md 文件
功能特點
- 嵌套对象自動拍平:递归展開 `{user:{name,age}}` 為 `user.name`、`user.age` 等點號鍵名(深度 1-6 層可調),無需手寫拍平脚本
- 4 種嵌套處理模式:拍平(推薦,深度可調)/ 首層鍵(嵌套对象作為單列 JSON)/ 字符串化(嵌套对象轉 JSON 字符串)/ Raw JSON(每列一個完整 JSON 块)
- 智能多表格拆分:識别 JSON 顶層數組字段(如 `users`、`orders`),自動拆為多個独立 Markdown 表格並生成 ### 标题,適合復雜业務數據
- 自定義分隔符:拍平模式默認 `.`(如 `user.name`,符合 Lodash / MongoDB 約定),可在工具欄輸入 `_` / `-` / `/` 等自定義
- 鍵名美化(camelCase / snake_case → Title Case):`user_name` 自動轉為 `User Name`,`userProfileId` 自動轉為 `User Profile Id`,讓表頭更適合人類別阅讀
- 列排序開關:一鍵按字母顺序排列所有表頭列,对比多份 Markdown 文档時讓列顺序稳定一致
- 空值列排除:自動检測所有列都為 null / undefined / 空字符串的列並排除,避免無意義列占空间
- 3 種对齊方式:左对齊(`:-`)/ 居中对齊(`:-:`)/ 右对齊(`-:`),單選按钮切換,符合 GFM 規範
- 列索引列開關:可選在最左侧添加 `#` 编號列(表頭文本可自定義),方便在文档中引用列號
- Caption 标题開關:每個表格上方自動生成 `### 數據名` 三级标题(H3),分章節文档中結構清晰,对 SEO 有帮助
- 類別型感知轉義:單元格內的 `|` / `\` / 換列符自動轉義為 `\|` / `\\` / `<br>`,避免破坏 Markdown 表格語法
- 生成統计反馈:底部狀態欄實時顯示「已生成 N 個表格 × M 列 × K 列」+ 字節數,調试長 JSON 時一眼看清數據規模
- 示例數據 + 文件上传:內置 3 條嵌套用户示例一鍵加載,支持拖拽或點擊上传 .json / .txt 文件
- 完全浏览器本地運列:所有 JSON 解析、嵌套拍平、Markdown 生成、復制下載操作在你的浏览器內完成,數據不上传任何服務器
程式碼範例
JavaScript:fetch + 嵌套拍平 + Markdown 輸出
javascript實際開發中最常见的用法:調用 GitHub API 後嵌套对象拍平為點號鍵名,再用本工具生成 Markdown 表格。
// 1) 調用 GitHub API 獲取用户列表
async function fetchUsers() {
const res = await fetch('https://api.github.com/users?per_page=10');
return await res.json();
}
// 2) 嵌套拍平函數(與本工具的拍平逻辑等价)
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) 把拍平後的數據轉 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) 輸出到 README.md
const users = await fetchUsers();
const md = generateMarkdownTable(users, { align: 'left', sortColumns: true });
console.log('## GitHub Users\n\n' + md);
// 復制粘贴到 README.md 即被 GitHub 渲染為表格Python:Flask 後端生成 Markdown 报表
python後端聚合多源數據後用 Python 生成 Markdown 表格(無前端依赖),適合 CI/CD 自動生成周报。
from flask import Flask, jsonify
import json
app = Flask(__name__)
def flatten(obj, prefix='', sep='.', result=None, depth=0, max_depth=3):
"""递归拍平嵌套对象"""
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.append('| ' + ' | '.join(idx_cell + cells) + ' |')
return '\n'.join(lines)
@app.route('/api/stats.md')
def stats_markdown():
"""把內部 API 數據生成 Markdown 表格"""
data = json.load(open('weekly_stats.json'))
md = json_to_markdown_table(data['users'], align='left', sort_columns=True, caption='周活跃用户')
return md, 200, {'Content-Type': 'text/markdown; charset=utf-8'}
if __name__ == '__main__':
app.run(debug=True)命令列:jq 聚合 + 本工具生成 GitHub Release Notes
bash運維場景:從 GitHub API 拉取 PR 列表,用 jq 聚合並拍平為點號鍵名,再粘贴到本工具生成 GFM Release Notes。
# 1) 用 gh CLI 拉取最近 50 個 merged PR
PR_JSON=$(gh pr list --state merged --limit 50 --json number,title,author,labels,mergedAt)
# 2) 用 jq 拍平 labels 嵌套數組(與本工具拍平逻辑等价)
echo "$PR_JSON" | jq 'map({
number: .number,
title: .title,
author: .author.login,
labels: (.labels | map(.name) | join(", ")),
mergedAt: .mergedAt
})' > release_prs.json
# 3) 打開本工具 (https://geekformat.com/json/to-markdown/)
# - 粘贴 release_prs.json 內容
# - 工具欄 Strategy 選 "Single"
# - 勾選 Sort columns + Include Index
# - 點擊 Convert
# - 復制生成的 Markdown 表格
# 4) 拼接到 Release Notes
cat > RELEASE.md <<'EOF'
# v2.1.0 Release Notes
## 🆕 What's Changed
EOF
# 把上一步復制的表格粘贴到這裡(或用 sed 注入)
sed -i '/## 🆕/r /tmp/table.md' RELEASE.md
cat >> RELEASE.md <<'EOF'
**Full Changelog**: https://github.com/your/repo/compare/v2.0.0...v2.1.0
EOF
# 5) 用 gh CLI 创建 Release
gh release create v2.1.0 -F RELEASE.md -t "v2.1.0"常見問題
怎麼把 JSON 數據轉成 Markdown 表格?
把 JSON 數組(每個元素是一個对象)或單個对象粘贴到左侧輸入框,點擊工具欄「Convert」按钮,右侧會自動生成 GFM 标準的 Markdown 表格代碼。生成的代碼可直接粘贴到 GitHub README、Markdown 博客、Confluence 頁面、Notion 文档中。
嵌套的 JSON 对象能轉成 Markdown 表格吗?
可以。本工具內置 4 種嵌套處理模式應对不同場景:① 拍平(推薦):递归把 `{user:{name:'Alice',age:30}}` 展開成 `user.name`、`user.age` 兩列,深度 1-6 層可調;② 首層鍵:只取顶層字段,嵌套对象作為整列 JSON 字符串;③ 字符串化:嵌套对象統一轉 JSON 字符串;④ Raw JSON:每列一個完整 JSON 块(適合代碼片段展示)。
拍平後的鍵名分隔符能改吗?
默認使用 `.` 作為分隔符(`user.name`),符合 JavaScript / MongoDB / Lodash 等主流約定。如需 `user_name`(snake_case)或 `user/name`(路径风格),可在工具欄的「Separator」輸入框自定義(最多 3 個字符)。
鍵名美化是什麼意思?
勾選「Beautify keys」後,`user_name`、`userProfileId` 這類別鍵名會自動轉為 `User Name`、`User Profile Id` 這種 Title Case。底層實現是把下划线 / 短横线轉為空格,再在 camelCase 大寫字母前加空格,最後首字母大寫。這樣表頭更適合人類別阅讀,对 README、API 文档等長篇 Markdown 特别有用。
如何拆分多個表格?
工具欄的「Strategy」下拉有三個選項:① Single(默認):整個 JSON 合成一個表(適合纯數組場景);② Multi:當 JSON 是包含多個數組字段的对象時,自動把每個數組拆為独立表並生成 ### 标题(適合 `{users:[...], orders:[...]}` 場景);③ Split:強制拆分模式,仅處理數組字段,其他字段忽略。
生成的 Markdown 表格可以直接用於 GitHub 吗?
可以。工具生成的 Markdown 表格符合 CommonMark 和 GFM(GitHub Flavored Markdown)規範,可直接用於 GitHub README、GitLab 文档、Notion 頁面、VuePress / Docusaurus / Hexo 博客、Slack / Discord 消息、VS Code Markdown Preview 等任何支持 GFM 的平台。
支持批量生成多個 Markdown 表格吗?
支持。把 Strategy 切換為「Multi」或「Split」,工具會智能識别 JSON 顶層數組字段(如 `users` / `products` / `orders`),每個數組自動生成一個独立的 Markdown 表格,並在每個表格上方生成 `### 字段名` 标题,方便在長文档中組織展示。
怎麼控制表頭顺序?
工具默認按 JSON 中各对象 key 首次出現的顺序作為表頭顺序。如果你希望按字母顺序排列所有列(对比多份文档時讓列稳定一致),勾選工具欄的「Sort columns」開關;如需完全自定義顺序,可使用「Column order」高级功能(即將推出)。
空值列太多了怎麼办?
勾選工具欄的「Exclude empty」開關,工具會自動检測所有列都為 null / undefined / 空字符串的列並排除。這对稀疏數據(如只有部分用户填了某字段)特别有用,可大幅减少表格宽度。
單元格裡的 | 字符會被破坏表格吗?
不會。工具自動轉義單元格中的 `|`(变為 `\|`)、`\`(变為 `\\`)、換列(变為 `<br>`),確保生成的 Markdown 表格在所有渲染器中都不會出現錯位。這是相对竞品的關鍵升级——大多數竞品不做轉義,會導致用户復制含 `|` 的數據後表格崩掉。
Markdown 表格和 HTML 表格有什麼區别?
Markdown 表格是纯文本格式(`|` `-` 語法),適合技術文档、README、博客、版本控制協作,語法簡洁易讀;HTML 表格是带樣式的網頁格式(`<table>` `<tr>` 标簽),適合需要嵌入 CSS 樣式、響應式布局、可访问性 ARIA 标簽的前端頁面。兩者都從 JSON 轉換而來,但應用場景不同,建议用本工具生成 Markdown 表格嵌入技術文档,用 JSON 轉 HTML 工具生成 HTML 表格嵌入網頁。
Markdown 表格的最大列數限制?
工具默認不設列數上限(與 HTML 表格工具不同),因為 Markdown 表格是纯文本,浏览器渲染压力小。但建议:① 超過 1000 列時拆分為多表或分頁;② 嵌入 GitHub README 時單文件不超過 1MB;③ 嵌入 Notion / Confluence 時遵守平台限制。
怎麼自定義 Caption 标题?
「Multi / Split」策略下,每個表格的 Caption 自動使用顶層數組字段名(如 `### users`、`### orders`)。「Single」策略下,可勾選「Include Caption」並輸入自定義标题文本。Caption 是 `### H3` 三级标题,符合 Markdown 文档結構規範。
數據上传到服務器吗?隱私安全吗?
完全本地浏览器運列。所有 JSON 解析、嵌套拍平、Markdown 生成、復制下載操作都在你的浏览器內通過 JavaScript 完成,文件讀取也只在本地 FileReader 中處理,不會發送到任何服務器。包含敏感 API 返回、未公開业務字段的 JSON 都可以放心使用,關闭頁面即清除。
故障排查
提示「請輸入 JSON 數據」或類別似錯误
左侧輸入框為空或只有空白字符。確保已粘贴有效的 JSON 內容,或點擊「Sample」加載示例數據,或點擊「Upload」選擇 .json / .txt 文件。
提示「Unexpected token ... in JSON at position N」
JSON 格式不合法。常见原因:① 末尾有多余逗號(如 [{},{},]);② 用了單引號而非雙引號;③ JS 对象寫法(如 {key: value})而非 JSON({"key": "value"})。可用 JSON 格式化工具先校验修復。
生成的表格只有表頭没有數據列
JSON 數據是空數組 [] 或空对象 {}。本工具对空數組會返回「<!-- No valid objects found -->」注释。可在源 JSON 中至少添加一條对象數據。
拍平模式下列名太長(如 user.profile.address.city.country.code)
嵌套層级太深時建议:① 改用「First Key」模式(仅取顶層字段,嵌套对象作為整列 JSON);② 减小 Max Depth(從 6 改為 3-4);③ 修改源 JSON 結構,减少不必要的嵌套;④ 用工具欄的 Reset 按钮恢復默認拍平配置。
多表拆分模式没有生成多個表格
確認源 JSON 是对象結構(而非纯數組),且字段中至少有一個值是「元素為对象的數組」(如 `"users": [{...}, {...}]`)。如果顶層字段都是字符串 / 數字 / 嵌套对象本身,「Multi」策略會回退到「Single」單表模式。
鍵名美化後表頭是空的
Beautify Keys 功能會把 snake_case 轉為 Title Case,但不會改变原本就以大寫 / 特殊字符開頭的 key(如 `__proto__`、`constructor`)。這些是 JavaScript 保留字,建议在源 JSON 中先重命名再用工具。
生成的 Markdown 在 GitHub 渲染為空
極少见。常见原因:① 表格中存在未轉義的 `|` 字符(虽然本工具會自動轉義,但手動修改後可能破坏);② 單元格中含有 HTML 标簽(GitHub 默認不渲染,工具已自動轉 `\n` 為 `<br>`);③ 文件编碼非 UTF-8。
下載的 table.md 在编辑器打開是空白的
下載的文件仅包含 Markdown 表格代碼(以 `|` `-` 字符開頭),没有完整的 Markdown 文档骨架(如 `# 标题` `## 章節`)。這是為了方便嵌入到現有 Markdown 文档而設计的片段代碼。可手動在文件開頭加上 `# 标题` 等标题,或直接粘贴到現有 .md 文件对應位置。
表頭中文顯示乱碼
源 JSON 中的 key 含中文,確保源文件本身是 UTF-8 编碼。如果是從 Excel 復制的 JSON,可能被轉成 GBK,可先用编碼轉換工具轉為 UTF-8 再粘贴。
想批量修改生成的表格(如替換公司 Logo / 改颜色)
生成後在右侧 Copy 出 Markdown 表格,用 sed / 自寫脚本批量替換樣式屬性。Markdown 表格本身不支持颜色(不像 HTML),如需颜色可改用 JSON 轉 HTML 工具(生成 `<table>` 並加 inline style)。
排除空列後表格反而变宽了
Exclude Empty 是排除「所有列都為 null/undefined/空字符串」的列。如果某列只有 1 列有值、其他列都為空,则不會被排除(這是正確列為)。如需排除稀疏列,可在源 JSON 中先清洗。
歷史記錄丢失了
歷史記錄存储在浏览器 localStorage 中,清除浏览器數據 / 切換到無痕模式 / 使用其他浏览器都會導致歷史記錄消失。本工具不會上传歷史到任何服務器,因此無法跨設備同步。
術語表
- Markdown 表格
- 由 | 和 - 字符組成的纯文本表格,被 GFM(GitHub Flavored Markdown)規範定義。本工具生成的代碼嚴格遵循這套語法,可直接被 GitHub / GitLab / Notion / Confluence 渲染。
- GFM
- GitHub Flavored Markdown 的縮寫,GitHub 在标準 Markdown 之上扩展的方言,包括表格、删除线、任務列表、自動链接等。本工具生成的表格符合 GFM 規範。
- CommonMark
- Markdown 語法的标準化規範(2014 年發布)。GFM 表格語法在 CommonMark 之上做了扩展。本工具的輸出可同時被嚴格 CommonMark 解析器和 GFM 解析器正確渲染。
- JSON 數組
- 方括號 [...] 包裹的对象集合。本工具把數組的每個对象作為表格一列;如果是空數組则不生成表格(顯示提示)。
- JSON 对象
- 花括號 {} 包裹的鍵值对集合。本工具把对象的每個 key 作為表頭,value 作為單元格;單個对象會被自動包裝為單列表格。
- 嵌套拍平 (Flatten)
- 把嵌套对象递归展開為點號分隔的扁平鍵名,例如 {user:{name:'A'}} → 'user.name'。本工具支持 1-6 層深度自動拍平,分隔符可配置。
- 鍵名美化 (Beautify Keys)
- 把 snake_case 或 camelCase 鍵名轉為 Title Case 的轉換規则:user_name → User Name,userProfileId → User Profile Id。本工具的差异化能力之一。
- 智能多表拆分 (Multi-Table Split)
- 識别 JSON 顶層數組字段(如 users、orders),自動拆為多個独立 Markdown 表格。本工具的差异化能力之一,每個拆出的表自動生成 ### 标题。
- 对齊語法 (Alignment)
- GFM 表格的表頭分隔列支持 : 字符控制对齊::- 左对齊,:-: 居中对齊,-: 右对齊。本工具提供三個按钮一鍵切換。
- 列索引列 (Index Column)
- 在表格最左侧添加的 # 编號列(從 1 開始递增),表頭文本可自定義。本工具默認不開啟,開啟後方便在文档中引用列號。
- Caption
- Markdown 中的 H3 三级标题(###),本工具在每個生成的表格上方自動添加此标簽(默認使用顶層數組字段名或用户自定義文本),对文档導航和 SEO 都有帮助。
- 列排序 (Sort Columns)
- 把表格所有列按字母顺序排列的開關。開啟後,对比多份文档時列顺序稳定一致,diff 工具看到的变化更易識别。
- 空列排除 (Exclude Empty)
- 检測所有列中某列都為 null / undefined / 空字符串時自動排除该列。本工具默認關闭,開啟後大幅减少稀疏數據的表格宽度。
- Markdown 轉義 (Escape)
- 把 Markdown 表格中有特殊含義的字符(如 |、\、換列)轉義為安全形式(\|、\\、<br>),避免破坏表格語法。本工具自動做這個轉義,是相对竞品的關鍵升级。
- 本地歷史記錄 (localStorage)
- 浏览器提供的本地鍵值存储(容量約 5-10MB)。本工具用 localStorage 持久保存最近輸入,刷新或误關頁面後可快速恢復。
- 防抖 (Debounce)
- 前端性能優化技巧:把高频事件(如輸入)的回調合並為最後一次触發後執列一次。本工具設置 500ms 防抖,避免大文件解析卡顿。
4 種嵌套对象處理模式对比表
工具欄提供 4 種模式應对不同的嵌套場景,建议根據 JSON 結構復雜度選擇:
| 模式 | 處理列為 | 示例列名 | 適用場景 |
|---|---|---|---|
Flatten(拍平) | 递归展開嵌套对象為點號分隔的鍵名(深度 1-6 可調) | user.name / profile.role | GitHub / Stripe / Notion 等真實 API 嵌套結構;希望每個字段單独成列 |
First Key(首層鍵) | 只取对象第一層 key,嵌套对象 / 數組作為單列 JSON 字符串 | user / tags | 嵌套結構不固定或太深(>6 層);只關心顶層字段概览 |
Stringify(字符串化) | 所有 value 強制當字符串處理,嵌套对象直接 JSON.stringify 後轉義 | \ | user (作為整段 JSON) | 調试場景:希望保留原始 JSON 結構供肉眼检查 |
Raw JSON | 把整列數據序列化到一個 value 列,單元格裡是格式化的 JSON 块 | value (整段 JSON) | 代碼片段展示、日志聚合、希望保持原始 JSON 形態 |
3 種表格生成策略对比表
工具欄的 Strategy 下拉控制如何處理包含多個數組字段的 JSON:
| 策略 | 適用輸入 | 輸出形式 | 何時使用 |
|---|---|---|---|
Single | JSON 數組 或 單個对象 | 1 個表格,無标题(H3) | 纯數組場景(最常见) |
Multi | 含多個數組字段的对象(如 {users:[...], orders:[...]}) | 每個數組 → 1 個表格 + ### 标题 | 多业務对象聚合(如前端 dashboard 數據) |
Split | 任意对象 | 強制拆出所有顶層數組字段,忽略非數組字段 | 明確只想看數組部分時 |
工具欄 14 項可配置選項速查表
工具欄全部 14 項可配置選項及其作用,方便快速選擇組合:
| 選項 | 類別型 | 作用 |
|---|---|---|
nestMode | select | 嵌套處理:Flatten / First Key / Stringify / Raw JSON |
maxDepth | select | 拍平模式的最大深度(1-6) |
separator | text | 拍平模式的鍵名分隔符(默認 .,最多 3 字符) |
strategy | select | 表格生成策略:Single / Multi / Split |
align | button | 对齊方式:左 / 居中 / 右 |
includeIndex | checkbox | 在最左侧添加 # 编號列 |
indexHeader | text | 索引列表頭文本(默認 #) |
sortColumns | checkbox | 按字母顺序排列所有列 |
beautifyKeys | checkbox | 鍵名 snake/camelCase → Title Case |
excludeEmpty | checkbox | 排除所有列都為空的列 |
includeCaption | checkbox | 在每個表格上方添加 ### 标题 |
caption | text | 自定義 Caption 文本(Single 策略生效) |
indent | select | Raw JSON 模式的縮進(0/2/4) |
Markdown 單元格轉義規则速查表
工具會自動轉義單元格中可能破坏表格語義的特殊字符:
| 輸入字符 | 輸出形式 | 轉義原因 |
|---|---|---|
| (竖线) | \| | Markdown 表格列分隔符 |
\ (反斜线) | \\ | Markdown 轉義字符本身 |
\n (換列) | <br> | Markdown 表格單元格內不允许真實換列 |
\r (回车) | (删除) | Windows 換列符的残余部分 |
null / undefined | (空字符串) | 默認占位,可配 Exclude empty |
对象 (length > 60) | JSON 截斷到 60 字符 + … | 避免單單元格過長撑破表格 |
Privacy & Security
本 JSON 轉 Markdown 工具所有 JSON 解析、嵌套拍平、Markdown 生成、復制下載操作完全在你的浏览器本地通過 JavaScript 完成,輸入的 JSON 數據和生成的 Markdown 代碼都不會被上传到任何服務器,也不會被記錄、缓存或存储到雲端。包含未公開 API 返回、內部业務字段的敏感 JSON 都可以放心使用,關闭頁面即清除全部數據。
Authoritative References
- JSON 壓縮
- CSV 轉 JSON
- JSON 轉 CSV
- JSON Diff
- JSON Escape / Unescape
- JSON 扁平化
- JSON 格式化
- JSON 產生器
- JSONPath 查詢
- JSON 合併
- JSON 修復
- JSON Schema 驗證器
- JSON 排序
- JSON Stringify
- JSON 轉 HTML 表格
- JSON 轉 Java
- JSON 轉 Markdown
- JSON 轉 SQL
- JSON 轉 TOML
- JSON 轉 TypeScript
- XML 轉 JSON
- JSON 轉 XML
- YAML 轉 JSON
- JSON 轉 YAML
- JSON 轉 Go
- JSON 轉 Rust
- JSON 轉 Swift
- JSON轉C#
- JSON 轉 C++
- JSON 轉 PHP
- JSON 轉 Python