JSON 格式化
暫無內容
免費線上 JSON 格式化工具,支援 JSON 美化、校驗、壓縮和 JSON 樹可視化編輯。內建語法錯誤偵測與自動修復,支援 13 種程式語言程式碼轉換(TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML),適合介面除錯、設定檢查和日誌閱讀。
暫無內容
免費線上 JSON 格式化工具,支援 JSON 美化、校驗、壓縮和 JSON 樹可視化編輯。內建語法錯誤偵測與自動修復,支援 13 種程式語言程式碼轉換(TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML),適合介面除錯、設定檢查和日誌閱讀。
把 JSON 內容貼上進來即可快速美化,適合檢視介面回傳值、設定檔和日誌欄位。工具會自動加入縮排和換行,將緊湊資料整理成清晰的層級結構。預設使用 2 個空白縮排,也可以在工具列切換縮排大小。
JSON 格式化更適合處理本身合法但難讀的內容,JSON 修復更適合處理報錯、缺引號、尾逗號等不合法結構。如果格式化時提示錯誤,建議先做 JSON 修復。簡單說:格式化只調整排版不改內容,修復會嘗試補全缺失的引號、括號並刪除多餘逗號讓其重新變成合法 JSON。
通常是因為內容本身不是合法 JSON,比如多了註解、單引號、尾隨逗號或括號未閉合。JSON 規範(RFC 8259)要求鍵名必須用雙引號、字串不能用單引號、最後一個元素後不能有逗號、不允許 // 或 /* */ 註解。這種情況更適合先做 JSON 修復,修復後再格式化。
非常適合。API 回傳值、Webhook 資料、追蹤日誌和設定片段都經常需要先格式化再排查。工具還支援 JSON 樹檢視可視化編輯、心智圖檢視和 13 種程式語言程式碼轉換,幫助你快速理解資料結構。
可以。工具支援將 JSON 轉換為 TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML 共 13 種格式,一鍵生成對應程式碼結構,非常適合根據介面回傳值快速生成前後端資料模型。
不會。所有格式化、校驗、壓縮和程式碼轉換都完全在瀏覽器本機執行,資料不會上傳到任何伺服器。即使處理包含金鑰、Token 或使用者隱私的介面回傳值也很安全,關閉頁面後資料即被清除。
可以。工具採用虛擬滾動渲染和 Web Worker 背景解析,幾 MB 的 JSON 也能流暢格式化和瀏覽,不會卡死頁面。對於超大檔案建議直接上傳 JSON 檔案而不是貼上,效能更穩定。
壓縮會刪除 JSON 中所有多餘的空白和換行,得到最緊湊的單行結果。這能顯著減小體積、節省頻寬和儲存,常用於介面傳輸、寫入設定、嵌入程式碼或作為環境變數。壓縮後的 JSON 與格式化前語意完全一致,只是不便於人閱讀。
樹檢視把 JSON 渲染成可摺疊的層級樹,支援展開/摺疊節點、可視化編輯欄位,適合瀏覽深層巢狀資料。心智圖檢視則把結構以節點連線的方式呈現,直觀展示物件與陣列的父子關係,適合梳理複雜資料結構或做簡報講解。
可以。工具提供鍵名排序功能,支援按字母升冪或降冪對物件的 key 重新排列,方便對比兩份 JSON 的差異、規範設定檔欄位順序,或讓介面欄位以固定順序展示便於 Code Review。
可以。工具支援將目前 JSON 內容壓縮編碼進 URL,生成可分享連結。對方打開連結即可看到相同的資料,無需上傳伺服器,適合快速協作排查介面問題或重現資料場景。
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 只有六種值類型,理解它們有助於快速判斷資料是否合法以及如何映射到程式語言類型。
| 類型 | 範例 | 說明 |
|---|---|---|
string | "hello" | 字串,必須使用雙引號,支援逸出字元與 \uXXXX Unicode 編碼。 |
number | 25 / 3.14 / -1e5 | 數字,支援整數、小數和科學記號,按雙精度浮點解析,不區分整數型和浮點型。 |
boolean | true / false | 布林值,只能是小寫的 true 或 false。 |
null | null | 空值,表示無資料,必須小寫,不同於空字串或 0。 |
object | {"k": "v"} | 物件,由大括號包裹的鍵值對集合,鍵必須是雙引號字串。 |
array | [1, 2, 3] | 陣列,由中括號包裹的有序值列表,元素類型可以不同。 |
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 |
瀏覽器和 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 透過 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 的利器,可快速美化、壓縮和提取欄位。
# 美化(默认 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 '.'
本工具所有 JSON 格式化、校驗、壓縮和程式碼轉換都完全在你的瀏覽器本機執行,資料不會上傳到任何伺服器,也不會被記錄或快取到遠端。即使處理包含金鑰、Token、使用者資訊的介面回傳值也很安全,關閉或重新整理頁面後資料即被清除。
多半是使用了單引號、鍵名沒加雙引號,或含有 // 、/* */ 註解。JSON 規範要求所有字串和鍵名必須用雙引號,且不支援註解。請改為雙引號並刪除註解,或先用 JSON 修復工具處理。
通常是括號 {} 或 [] 、引號未正確閉合,導致 JSON 不完整。請檢查結構是否成對閉合。貼上介面回傳值時也可能只複製了部分內容,確認複製完整。
JSON 不允許物件或陣列最後一個元素後帶逗號,例如 {"a":1,} 或 [1,2,] 都是非法的。刪除多餘逗號即可。JavaScript 物件允許尾逗號,但 JSON 不允許,從程式碼裡複製時要特別注意。
這是 JSON 的 Unicode 逸出寫法,本身是合法的,格式化後仍可正常解析。若希望直接顯示中文,在產生端設定不逸出(如 Python 的 ensure_ascii=False、Go 的關閉 HTML 逸出)即可。
JSON 數字按 IEEE 754 雙精度浮點解析,超過 2^53 的整數(如雪花 ID、訂單號)會丟精度。解決辦法是在傳輸時把大整數用字串包裹,即 "id": "9007199254740993",避免被當作數字解析。
直接切換到「壓縮 / Minify」即可把美化後的多行 JSON 重新變回最緊湊的單行,用於介面傳輸、寫入設定或嵌入程式碼。壓縮與美化互為逆操作,不改變資料內容。