🎉 我們上線了 Product Hunt!支持我們並給我們反饋
返回

JSON stringify 和 JSON parse

輕鬆在 JSON stringify 和 JSON parse 之間進行轉換

概述

JSON stringify和字串化工具幫助您在 JSON 字串和 JSON 物件之間進行轉換。它支援將 JSON 字串解析為格式化物件,以及將物件字串化為 JSON 格式。

JSON parse

將 JSON 字串轉換為格式化物件。此模式幫助您驗證和格式化 JSON 字串。

原始 JSON 字串:

{\"name\":\"John Doe\",\"age\":30,\"isStudent\":false,\"hobbies\":[\"reading\",\"gaming\"],\"address\":{\"city\":\"New York\",\"country\":\"USA\"}}

格式化的 JSON:

{
  "name": "John Doe",
  "age": 30,
  "isStudent": false,
  "hobbies": [
    "reading",
    "gaming"
  ],
  "address": {
    "city": "New York",
    "country": "USA"
  }
}

JSON stringify

將 JSON 字串轉換為格式化物件。此模式幫助您驗證和格式化 JSON 字串。

JSON 物件:

const personData = {
  name: "John Doe",
  age: 30,
  isStudent: false,
  hobbies: ["reading", "gaming"],
  address: {
    city: "New York",
    country: "USA"
  }
};

轉換為 JSON 字串:

// 壓縮的 JSON 字串(帶轉義引號)
const rawJson = "{\"name\":\"John Doe\",\"age\":30,\"isStudent\":false,\"hobbies\":[\"reading\",\"gaming\"],\"address\":{\"city\":\"New York\",\"country\":\"USA\"}}";

// 美化的 JSON 字串
const prettyJson = JSON.stringify(personData, null, 2);

選項

  • 縮排大小:選擇 2、4 或 8 個空格進行格式化
  • 轉義 Unicode:將 Unicode 字元轉換為 \uXXXX 格式
  • 移除空白:輸出無空格或換行的壓縮 JSON

還原經過轉義的 JSON

經過轉義的 JSON(也稱為字串化或雙重編碼的 JSON)是指被存放在 JSON 字串裡的 JSON 文件。每個引號都會變成 \",每個換行都會變成 \n。只要 JSON 經過了把它當作純文字而非結構化資料處理的系統,就會出現這種情況。

常見來源

  • 把請求或回應內容當作單一字串欄位記錄的日誌
  • 對巢狀內容做了兩次序列化的 API,因此該值以字串而非物件的形式回傳
  • 存放序列化文件的資料庫 TEXT 或 VARCHAR 欄位
  • 把原始事件包在信封結構裡的 Webhook 內容
  • 從偵錯工具或瀏覽器開發者工具複製出來的值,本身已經是轉義後的形式

如何還原

把轉義後的字串貼到輸入框並執行 Parse,工具會移除一層編碼並格式化輸出。如果結果仍然是一串帶有大量反斜線的字串,代表該文件被編碼了不止一次——請對結果再次執行 Parse,直到出現真正的結構為止。

轉義後的輸入:

"{\"order\":{\"id\":41,\"note\":\"line one\\nline two\"}}"

解析之後:

{
  "order": {
    "id": 41,
    "note": "line one
line two"
  }
}

常見的轉義問題

大部分解析失敗並非因為文件格式混亂,而是因為它「幾乎」就是 JSON。以下幾種情況幾乎涵蓋了全部原因。

輸出仍然是一長串轉義字串

該值被編碼了兩次。請對結果再次執行 Parse——每執行一次正好移除一層編碼。

文字顯示的是 \n 而不是換行

在 JSON 字串內部,\n 是由兩個字元組成的轉義序列,並不是換行字元。解析會把它還原成真正的換行,直接對原始文字做尋找取代則不會。

從設定檔複製的內容無法解析

JSON 必須使用雙引號。以單引號包住的鍵和值在 JavaScript 中合法,但並不是合法的 JSON。

解析在接近結尾處回報非預期的符號錯誤

JSON 不允許在物件或陣列的最後一個元素後面留下逗號。JavaScript 允許,因此手動編輯過的檔案經常會多出一個。

從文書軟體或通訊軟體複製的內容無法解析

這些軟體會把直引號替換成印刷體引號,而 JSON 無法辨識。請重新輸入引號,或先透過純文字編輯器貼上一次。

檔案看起來正常,卻提示第一個字元不合法

該檔案開頭帶有 UTF-8 位元組順序標記(BOM)。請以「UTF-8 無 BOM」的格式重新儲存。

功能特點

  • 將 JSON 字串解析為格式化物件
  • 將 JSON 物件字串化為 JSON 格式
  • 可配置的縮排(2、4 或 8 個空格)
  • Unicode 字元轉義選項
  • 錯誤驗證和幫助訊息
  • 複製結果到剪貼簿
  • 使用範例資料快速測試

使用技巧

  • 使用「載入範例」按鈕查看範例輸入
  • 在字串化模式中,您可以使用帶單引號和無引號鍵的 JSON 物件表示法
  • 工具會自動使用適當的縮排格式化輸出
  • 使用複製按鈕直接將輸出複製到剪貼簿
  • 檢查錯誤訊息以解決輸入中的驗證問題

Rocks Dev Dock 發布了 🥳

在工具內按 '+' 將您喜歡的工具添加到您的 dock。

使用我們的工具時不會收集數據,只是工具。