格式化 | 驗證 | 壓縮

> 格式化 | 驗證 | 壓縮 <

// 即時格式化、驗證和壓縮JSON資料

[FORMAT]

美化輸出

使用可自訂的縮排美化JSON。選擇2空格、4空格或定位字元。

[MINIFY]

壓縮輸出

刪除所有空白來壓縮JSON。減少生產環境和API的檔案大小。

[VALIDATE]

語法檢查

即時驗證JSON語法。取得詳細的錯誤訊息。

// 關於JSON格式化

什麼是JSON:

JSON(JavaScript Object Notation)是RFC 8259定義的輕量級資料交換格式。人類易於讀寫,機器易於解析和產生。

範例:

{"name":"John","age":30} → {\n "name": "John",\n "age": 30\n}

常見用途:

  • >API回應偵錯和檢查
  • >設定檔格式化
  • >處理前的資料驗證
  • >透過壓縮減小大小
  • >排序鍵值以獲得一致輸出

>> 常見問題

問:什麼是JSON格式化工具?

答:JSON格式化工具將原始或壓縮的JSON資料用適當的縮排和換行重新格式化,使其更易讀。

問:美化和壓縮有什麼區別?

答:美化添加縮排和換行使JSON可讀。壓縮刪除所有不必要的空白以減小檔案大小。

問:JSON驗證如何運作?

答:JSON驗證檢查輸入是否符合JSON規範(RFC 8259),包括括號、引號和資料類型。

問:排序鍵值有什麼用?

答:按字母順序排序重新排列JSON結構中的所有物件鍵,便於比較和保持一致性。

問:JSON與YAML相比如何?

答:JSON使用大括號和嚴格語法,YAML使用縮排。JSON在API中支援更廣泛。YAML更易讀但解析更複雜。

// 常見的 JSON 錯誤

這些寫法在 JavaScript 中可行,但在嚴格的 JSON 中無效。

無效有效
{'a': 1}{"a": 1}
{"a": 1,}{"a": 1}
{a: 1}{"a": 1}
{"a": undefined}{"a": null}
{"a": 01}{"a": 1}

// 在程式碼中格式化 JSON

JavaScript  JSON.stringify(obj, null, 2)
Python      json.dumps(obj, indent=2, ensure_ascii=False)
PHP         json_encode($obj, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)
Go          json.MarshalIndent(v, "", "  ")
Java        new ObjectMapper().writerWithDefaultPrettyPrinter()
CLI         jq . file.json
CLI         python3 -m json.tool file.json

>> 更多問題

問:應該用 2 個空格、4 個空格還是 Tab 縮排?

答:這取決於團隊慣例,保持一致最重要。2 個空格在前端領域常見,巢狀較深時更節省寬度;4 個空格在 Python 專案中常見;Tab 允許每個人自行調整顯示寬度。用於傳輸時,無縮排的壓縮 JSON 體積最小。

問:為什麼我的 JSON 無效?

答:最常見的原因是用單引號取代雙引號、鍵沒有加引號、最後一項後面多了逗號、含有註解、使用了 undefined、NaN,或數字帶有前導零。錯誤訊息通常會指出第一處出錯的行號與列號。

問:JSON5 和 JSONC 是什麼,與 JSON 有何關係?

答:JSON5 和 JSONC 是允許註解、尾隨逗號等寫法的擴充格式(如 tsconfig.json、VS Code 設定)。它們不是合法的 JSON:格式化工具要求嚴格的 JSON,請先刪除註解和尾隨逗號。

// 其他語言