分類: 開發工具

JSON 展平工具

站方自行規劃沒找到想要的工具?

把巢狀 JSON 展平為路徑 = 值的行,或將其還原

使用 a.b[0].c 這樣的點與中括號表示法,把巢狀 JSON 文件展平為每個葉值一行的路徑 = 值格式,也可以從路徑 = 值行的清單還原出巢狀 JSON。整個過程完全在你的瀏覽器中完成。

5 行

展平後的行
name = "Ada Lovelace"
address.city = "London"
address.country = "UK"
skills[0] = "Analysis"
skills[1] = "Mathematics"

本頁的所有處理都在瀏覽器中完成,不會上傳任何內容。

這個工具能做什麼

深度巢狀的 JSON 很難瀏覽、比較,也很難一個欄位一個欄位貼到試算表裡。這個工具會走訪文件,為每個葉值印出到達它所用的完整路徑,採用大多數指令碼語言使用的同一種點/中括號表示法,於是 users[0].email 就變成了一行可以搜尋或複製的文字。反方向則接收同樣的行格式,按需建立每一層中間物件或陣列,還原出巢狀物件或陣列。整個過程從不把任何內容當作程式碼執行:路徑始終只是按純文字解析。

使用方式

  1. 選擇展平或還原。
  2. 貼上巢狀 JSON,或路徑 = 值的行,或載入範例。
  3. 複製展平後的行,或還原出的 JSON。

隱私說明

本工具完全在你的瀏覽器中執行。輸入的內容不會被上傳、儲存或分享,關閉分頁就隨之消失。

常見問題

我的 JSON 會被上傳到任何地方嗎?
不會。展平與還原由頁面內執行的 JavaScript 完成,你的資料不會離開你的裝置。
還原 JSON 是用 eval 實作的嗎?
不是。每個路徑都是手動解析成鍵和陣列索引的,值只會用 JSON.parse 讀取,從不會被執行。
空物件和空陣列會怎麼處理?
空物件或空陣列沒有可以展平的葉值,因此會作為單獨一行保留,值為 {} 或 [],還原時也依同樣的方式復原。