logo
GeekFormat

JSON 格式化

暫無內容

preview.json
就緒

免費線上 JSON 格式化工具,支援 JSON 美化、校驗、壓縮和 JSON 樹可視化編輯。內建語法錯誤偵測與自動修復,支援 13 種程式語言程式碼轉換(TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML),適合介面除錯、設定檢查和日誌閱讀。

相關推薦

適用場景

  • API 介面回傳的一行 JSON 需要美化成易讀結構方便排查問題
  • 設定檔、日誌欄位需要格式化後再做進一步處理
  • 開發除錯時快速校驗 JSON 是否合法並壓縮體積
  • 需要把 JSON 轉成 TypeScript 介面、Java 類別或 Python 字典等程式碼格式
  • 對比兩份介面回傳值時先按鍵名排序再逐欄位核對差異
  • 梳理第三方 API 的複雜巢狀結構,用樹檢視或心智圖快速理解層級
  • 把壓縮後的追蹤日誌、Webhook 資料展開閱讀,定位異常欄位
  • 將本機環境變數或設定裡的緊湊 JSON 格式化後編輯,再壓縮寫回

功能特點

  • JSON 美化更直觀:快速把一行資料整理成易讀層級結構,可切換 2/4 空白或 Tab 縮排
  • 支援校驗與壓縮:即時偵測語法錯誤並精確提示位置,一鍵壓縮為最緊湊單行
  • 13 種程式語言程式碼轉換:TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML 一鍵生成
  • JSON 樹檢視可視化編輯:摺疊展開節點、直觀檢視和修改深層巢狀結構
  • 心智圖檢視:以節點連線方式呈現物件/陣列父子關係,適合梳理複雜結構
  • 鍵名排序:按字母升冪/降冪重排物件 key,方便對比差異與規範欄位順序
  • 大檔案流暢處理:虛擬滾動 + Web Worker 背景解析,幾 MB JSON 也不卡頓
  • 隱私安全:全程瀏覽器本機執行,資料零上傳,處理含金鑰的回傳值也放心
  • 便捷操作:上傳/下載檔案、一鍵複製、歷史記錄還原、URL 分享一應俱全

使用方法

  1. 貼上 JSON 內容或上傳 JSON 檔案
  2. 選擇美化、壓縮或校驗模式,也可切換到樹檢視/心智圖進行可視化檢視
  3. 檢視格式化後的層級結構和錯誤提示,必要時切換到程式碼轉換生成目標語言結構
  4. 複製處理後的內容、下載檔案或生成分享連結

常見問題

怎麼把一行 JSON 快速格式化成可讀結構?

把 JSON 內容貼上進來即可快速美化,適合檢視介面回傳值、設定檔和日誌欄位。工具會自動加入縮排和換行,將緊湊資料整理成清晰的層級結構。預設使用 2 個空白縮排,也可以在工具列切換縮排大小。

JSON 格式化和 JSON 修復有什麼區別?

JSON 格式化更適合處理本身合法但難讀的內容,JSON 修復更適合處理報錯、缺引號、尾逗號等不合法結構。如果格式化時提示錯誤,建議先做 JSON 修復。簡單說:格式化只調整排版不改內容,修復會嘗試補全缺失的引號、括號並刪除多餘逗號讓其重新變成合法 JSON。

為什麼格式化 JSON 時會提示錯誤?

通常是因為內容本身不是合法 JSON,比如多了註解、單引號、尾隨逗號或括號未閉合。JSON 規範(RFC 8259)要求鍵名必須用雙引號、字串不能用單引號、最後一個元素後不能有逗號、不允許 // 或 /* */ 註解。這種情況更適合先做 JSON 修復,修復後再格式化。

適合介面除錯和檢視日誌回傳嗎?

非常適合。API 回傳值、Webhook 資料、追蹤日誌和設定片段都經常需要先格式化再排查。工具還支援 JSON 樹檢視可視化編輯、心智圖檢視和 13 種程式語言程式碼轉換,幫助你快速理解資料結構。

可以把 JSON 轉成 TypeScript 介面或 Java 類別嗎?

可以。工具支援將 JSON 轉換為 TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML 共 13 種格式,一鍵生成對應程式碼結構,非常適合根據介面回傳值快速生成前後端資料模型。

格式化的 JSON 資料會上傳到伺服器嗎?

不會。所有格式化、校驗、壓縮和程式碼轉換都完全在瀏覽器本機執行,資料不會上傳到任何伺服器。即使處理包含金鑰、Token 或使用者隱私的介面回傳值也很安全,關閉頁面後資料即被清除。

能處理很大的 JSON 檔案嗎?

可以。工具採用虛擬滾動渲染和 Web Worker 背景解析,幾 MB 的 JSON 也能流暢格式化和瀏覽,不會卡死頁面。對於超大檔案建議直接上傳 JSON 檔案而不是貼上,效能更穩定。

JSON 壓縮(Minify)有什麼用?

壓縮會刪除 JSON 中所有多餘的空白和換行,得到最緊湊的單行結果。這能顯著減小體積、節省頻寬和儲存,常用於介面傳輸、寫入設定、嵌入程式碼或作為環境變數。壓縮後的 JSON 與格式化前語意完全一致,只是不便於人閱讀。

什麼是 JSON 樹檢視和心智圖檢視?

樹檢視把 JSON 渲染成可摺疊的層級樹,支援展開/摺疊節點、可視化編輯欄位,適合瀏覽深層巢狀資料。心智圖檢視則把結構以節點連線的方式呈現,直觀展示物件與陣列的父子關係,適合梳理複雜資料結構或做簡報講解。

格式化後可以按鍵名排序嗎?

可以。工具提供鍵名排序功能,支援按字母升冪或降冪對物件的 key 重新排列,方便對比兩份 JSON 的差異、規範設定檔欄位順序,或讓介面欄位以固定順序展示便於 Code Review。

可以把格式化結果分享給同事嗎?

可以。工具支援將目前 JSON 內容壓縮編碼進 URL,生成可分享連結。對方打開連結即可看到相同的資料,無需上傳伺服器,適合快速協作排查介面問題或重現資料場景。

關於 JSON 與 JSON 格式化

JSON(JavaScript Object Notation)是一種輕量級的資料交換格式,採用鍵值對和陣列的結構來表示資料,因其簡潔、易讀、跨語言的特性,已成為 Web API、設定檔、日誌和前後端資料傳輸的事實標準。JSON 只有六種基本值類型:字串、數字、布林值、null、物件和陣列,語法規則由 RFC 8259 和 ECMA-404 兩份標準共同定義。

JSON 格式化(也叫 JSON 美化、JSON Beautify)是指在不改變資料內容的前提下,為緊湊的 JSON 加入合理的縮排和換行,把它整理成帶層級結構、方便人閱讀的形式。介面回傳值、日誌和儲存中的 JSON 往往是壓縮成一行的,直接閱讀非常困難,格式化後就能清晰看到物件巢狀、陣列元素和每個欄位的值。

與格式化相對的操作是 JSON 壓縮(Minify),即刪除所有非必要的空白字元,把 JSON 變回最緊湊的單行形式,用於減小傳輸體積。格式化和壓縮是可逆的一對操作,二者都不會改變 JSON 的語意,只影響可讀性和體積。

JSON 校驗則是檢查一段文字是否符合 JSON 語法規範。常見的非法寫法包括:使用單引號而非雙引號、鍵名沒有加引號、最後一個元素後多了尾隨逗號、包含 // 或 /* */ 註解、括號或引號未正確閉合等。這些都不是合法 JSON,格式化時會報錯——此時應先用 JSON 修復工具處理,再進行格式化。

本工具在格式化的基礎上還提供樹檢視、心智圖檢視和 13 種程式語言的程式碼轉換能力:你既可以把 JSON 摺疊成可視化的層級樹來瀏覽深層結構,也能一鍵把介面回傳的 JSON 轉換成 TypeScript 介面、Java 類別、Python 字典或資料庫建表敘述,直接用於開發。所有處理都在瀏覽器本機完成,資料不會上傳伺服器。

JSON 資料類型速查表

JSON 只有六種值類型,理解它們有助於快速判斷資料是否合法以及如何映射到程式語言類型。

類型範例說明
string"hello"字串,必須使用雙引號,支援逸出字元與 \uXXXX Unicode 編碼。
number25 / 3.14 / -1e5數字,支援整數、小數和科學記號,按雙精度浮點解析,不區分整數型和浮點型。
booleantrue / false布林值,只能是小寫的 true 或 false。
nullnull空值,表示無資料,必須小寫,不同於空字串或 0。
object{"k": "v"}物件,由大括號包裹的鍵值對集合,鍵必須是雙引號字串。
array[1, 2, 3]陣列,由中括號包裹的有序值列表,元素類型可以不同。

JSON 字串逸出字元表

JSON 字串中的以下字元必須使用反斜線逸出,否則會導致解析失敗。

逸出含義
\"雙引號
\\反斜線
\/正斜線(可選逸出)
\n換行字元
\r歸位字元
\t定位字元 Tab
\b退格字元
\f換頁字元
\uXXXX四位十六進位表示的 Unicode 字元

常見非法寫法對照表

下面列出容易踩雷的非法 JSON 寫法及其合法形式,格式化報錯時可對照檢查。

非法寫法合法寫法說明
{name: "a"}{"name": "a"}鍵名必須用雙引號
{'name': 'a'}{"name": "a"}字串必須用雙引號,不能用單引號
{"a": 1,}{"a": 1}不允許尾隨逗號
{"a": 1} // 註解{"a": 1}JSON 不支援註解
{"a": undefined}{"a": null}沒有 undefined,用 null 表示空值
{"a": .5}{"a": 0.5}小數必須有整數位 0

Code Examples

JavaScript:使用 JSON.stringify 格式化 JSON

javascript

瀏覽器和 Node.js 內建的 JSON.stringify 第三個參數可指定縮排,是最常用的程式設計方式格式化 JSON。

const data = { name: '张三', age: 25, tags: ['a', 'b'] };

// 美化:第三个参数为缩进空格数(也可传 '\t' 使用 Tab)
const pretty = JSON.stringify(data, null, 2);
console.log(pretty);

// 压缩:不传第三个参数即得到最紧凑单行
const mini = JSON.stringify(data);
console.log(mini); // {"name":"张三","age":25,"tags":["a","b"]}

// 解析字符串为对象(会校验语法,非法时抛出 SyntaxError)
const obj = JSON.parse(pretty);

Python:使用 json 模組格式化

python

Python 標準函式庫 json 透過 indent 和 ensure_ascii 參數控制縮排和中文顯示。

import json

data = {"name": "张三", "age": 25, "tags": ["a", "b"]}

# 美化输出,indent 指定缩进,ensure_ascii=False 保留中文
pretty = json.dumps(data, indent=2, ensure_ascii=False)
print(pretty)

# 压缩输出:用最紧凑的分隔符
mini = json.dumps(data, separators=(",", ":"), ensure_ascii=False)
print(mini)

# 解析字符串(非法时抛出 json.JSONDecodeError)
obj = json.loads(pretty)

命令列:使用 jq 格式化 JSON

bash

jq 是命令列下處理 JSON 的利器,可快速美化、壓縮和提取欄位。

# 美化(默认 2 空格缩进)
cat data.json | jq '.'

# 压缩为单行
cat data.json | jq -c '.'

# 提取指定字段
cat data.json | jq '.user.name'

# curl 返回结果直接管道美化
curl -s https://api.example.com/user | jq '.'

Privacy & Security

本工具所有 JSON 格式化、校驗、壓縮和程式碼轉換都完全在你的瀏覽器本機執行,資料不會上傳到任何伺服器,也不會被記錄或快取到遠端。即使處理包含金鑰、Token、使用者資訊的介面回傳值也很安全,關閉或重新整理頁面後資料即被清除。

Authoritative References

Troubleshooting

Unexpected token ... in JSON(意外的字元 / 語法錯誤)

多半是使用了單引號、鍵名沒加雙引號,或含有 // 、/* */ 註解。JSON 規範要求所有字串和鍵名必須用雙引號,且不支援註解。請改為雙引號並刪除註解,或先用 JSON 修復工具處理。

Unexpected end of JSON input(內容意外結束)

通常是括號 {} 或 [] 、引號未正確閉合,導致 JSON 不完整。請檢查結構是否成對閉合。貼上介面回傳值時也可能只複製了部分內容,確認複製完整。

尾隨逗號導致報錯(Trailing comma)

JSON 不允許物件或陣列最後一個元素後帶逗號,例如 {"a":1,} 或 [1,2,] 都是非法的。刪除多餘逗號即可。JavaScript 物件允許尾逗號,但 JSON 不允許,從程式碼裡複製時要特別注意。

中文或特殊字元顯示為 \uXXXX

這是 JSON 的 Unicode 逸出寫法,本身是合法的,格式化後仍可正常解析。若希望直接顯示中文,在產生端設定不逸出(如 Python 的 ensure_ascii=False、Go 的關閉 HTML 逸出)即可。

大數字精度丟失(如 ID 變成科學記號或末位歸零)

JSON 數字按 IEEE 754 雙精度浮點解析,超過 2^53 的整數(如雪花 ID、訂單號)會丟精度。解決辦法是在傳輸時把大整數用字串包裹,即 "id": "9007199254740993",避免被當作數字解析。

格式化後想還原成一行

直接切換到「壓縮 / Minify」即可把美化後的多行 JSON 重新變回最緊湊的單行,用於介面傳輸、寫入設定或嵌入程式碼。壓縮與美化互為逆操作,不改變資料內容。