JSON5 線上解析

本地處理
app.json5.view

也可透過 #data={"name":"Ada"}#url=... 灌入資料,讀完即從位址列清除。

JSON5 是寫配置時更寬鬆的超集:允許註釋、尾逗號、單引號和無引號鍵名。本頁把它解析後輸出標準 JSON,方便再交給介面或其它工具。從 VS Code、webpack 配置或手寫 JS 物件裡拷出來的內容,往往不能直接 JSON.parse ,可以先過這一頁。

吃得下注釋

單行 // 與多行 /* */ 都會被丟掉,只保留資料。重要說明請另存在 README,不要指望註釋能進標準 JSON。

適合「給人看的配置」轉成「給程式讀的 JSON」這一步。

尾逗號

物件和陣列最後一項後面的逗號不再導致解析失敗。這也是從 JS / TS 物件字面量複製時最常見的報錯原因。

轉換後輸出不會保留尾逗號,符合 RFC 8259。

輸出仍是標準 JSON

結果可被 JSON.parse 和大多數後端直接使用。鍵名會補上雙引號,單引號字串會改成雙引號。

轉完可繼續格式化、校驗或生成 Schema。

示例

JSON5 輸入
{
  // 功能开关
  name: 'json5',
  enabled: true,
  tags: ['a', 'b',],
}
標準 JSON
{
  "name": "json5",
  "enabled": true,
  "tags": [
    "a",
    "b"
  ]
}
會保留註釋嗎?

不會。標準 JSON 沒有註釋,轉換後註釋會被丟棄。

和 JSONC 是一回事嗎?

JSONC 通常只加註釋;JSON5 還放寬了鍵名、引號和數字寫法。本頁按 JSON5 規則解析。

Infinity / NaN 支援嗎?

JSON5 允許這類數字寫法。轉成標準 JSON 後,下游是否接受取決於具體解析器,請抽查。

能當完整的 JS 執行器嗎?

不能。只解析資料字面量,不會執行函式或計算表示式。

推薦工作流

  1. 從配置檔案或程式碼裡複製帶註釋、尾逗號的片段。
  2. 貼到本頁,確認右側輸出是可 JSON.parse 的標準 JSON。
  3. 複製結果到介面、測試 fixture 或其它工具頁。
  4. 需要給人繼續編輯且保留註釋時,考慮改用 YAML 而不是硬塞進 JSON。

JSON5 適合「人寫、機器讀之前先規範化」。對外 API 仍應只接受標準 JSON,避免客戶端各寫各的超集。