JSON 修復

把不嚴格的 JSON 收成標準 JSON:註解、單引號、沒加引號的鍵、結尾多餘的逗號都會處理。

差一點就能解析的 JSON

編輯器和紀錄裡的 JSON 常帶註解、單引號、沒加引號的鍵,或在右括號前多一個逗號。嚴格解析會拒絕。這個頁面把這些寫法收成標準 JSON 並排版。註解會被刪掉,不會留在結果裡。樹狀編輯用 JSON 格式化。對比兩段值用 JSON 對比。

怎麼用

  1. 把不嚴格的文字貼進輸入框。輸入時立即更新預設開著,改字時結果會跟著變。轉換只做一次同樣的步驟。
  2. 全部清除會清空輸入和結果。
  3. 複製結果複製的是修好的 JSON。
  4. 顯示範例會填入 {name: 'Ada', n: 1, tags: ['a',],} 和一行 // note。結果是 name 為 Ada、n 為 1、tags 裡有 a 的物件。註解不在結果裡。

會改寫什麼

字串外面的 // 和 /* */ 會去掉。單引號字串會變成 JSON 字串,\n、\t、\r、\'、\" 和 \\ 會變成對應字元。裸詞會加上引號,但 true、false、null 不論大小寫都保持關鍵字。undefined、NaN、Infinity 變成 null。逗號後面只剩空白或註解,然後就是 } 或 ] 時,這個逗號會丟掉。結果用兩個空格縮排。已經在雙引號裡的文字原樣保留。修完仍不是 JSON,或輸入是空的,會提示 JSON 無效。

用在哪

  • 從 JavaScript 裡抄出來的設定。
  • 介面範例在結尾多寫了一個逗號。
  • 紀錄裡物件旁邊有一行 // 註解。

常見問題

註解不見了。

修復的目標是標準 JSON。註解不屬於 JSON,所以是刪掉,不是存下來。

引號裡的數字還是字串。

已經在雙引號裡的內容不會改。只會處理裸詞和單引號字串。