從 JSON 轉換為 CSV
將一個非空的 JSON 物件陣列,以預設的電子表格公式保護方式,轉換為 RFC 4180 風格的 CSV,並在本機執行。
隱私權:你的檔案不會離開裝置,所有處理均在瀏覽器本機完成。
使用方式
- 1.貼入一個非空的 JSON 陣列,且每行皆為物件,並確認其內容符合可視範圍限制。
- 2.轉換記錄後,請檢視欄位順序、巢狀 JSON 細胞、引號使用以及任何報告的公式風險字首。
- 3.下載 converted.csv,並在接收應用程式中選擇 UTF-8 逗號分隔匯入設定。
關於從 JSON 轉換為 CSV
JSON 到 CSV 轉換器可將非空的 JSON 物件陣列轉換為可下載的逗號分隔檔案,並在當前瀏覽器中執行。請貼上類似 [{"name":"Alice","age":30},{"name":"Bob","age":31}] 的紀錄,轉換後可檢視精確的 CSV 文字,並下載轉換後的 converted.csv。JSON 的輸入、解析後的紀錄、CSV 的輸出以及下載功能皆為本分頁的本機狀態,不會上傳至 Lizely。
支援的頂層結構刻意保持狹窄:一個包含一個或更多 JSON 物件的陣列。若為頂層物件、原始值、空陣列、null 檔、陣列行、或原始值行,將被拒絕並顯示特定訊息。欄位透過掃描解析後的記錄,從第一筆到最後一筆,首次出現的欄位會被加入。後續記錄可新增欄位。缺失的欄位與明確的 null 值會變成空的 CSV 區域。false、true、零以及其他 JSON 原始值將維持其常見文字形式。
巢狀物件與陣列不會被展開為點分欄位。它們會被序列化為一個單元格內的緊縮JSON格式。CSV引號則會保護JSON雙引號與逗號。這避免了發明可能與實際欄位名稱衝突或遺失陣列結構的展開規則。同時也意味著消費者若需再次使用巢狀結構,必須將該單元格解析為JSON。緊縮巢狀文字內的物件屬性順序則遵循解析後JavaScript物件的列舉行為。
輸出遵循常見的 RFC 4180 欄位規則。欄位以逗號分隔,記錄以 CRLF 分隔。包含逗號、雙引號、歸位字元或換行的欄位將被雙引號包圍。雙引號內的雙引號將被複製一次。空值將維持為空欄。此轉換器不會移除首尾空白、加入 UTF-8 BOM、推斷日期、本地化數值、或根據瀏覽器設定改變分隔符。這些選擇確保輸出的結果可預測且可見。
電子表格公式注入由一項持續啟用的安全策略處理。以 =、+、-、tab、換行、或公式觸發字元開頭的欄位名稱與 JSON 字串值,若在 ECMAScript 空白字元後出現,包括前導 BOM 或不換行空格,會在 CSV 轉義前加上一個開頭單引號。電子表格程式通常將這個單引號視為文字請求。此緩衝措施故意改變這些文字值,結果總結會報告有多少個儲存格被加上字首。JSON 數值為輸入資料而非攻擊者控制的公式字串,因此像 -JSON 這樣的 42 數值會保持為 -42。
公式保護減輕了常見風險,但並非所有電子表格軟體、匯入設定、地區或下游轉換流程的普遍安全保證。後續應用程式可能移除單引號、重新解釋文字,或使用不同的觸發規則。請在以能執行公式、命令、連結或外部資料連線的軟體中開啟前,審查不可信的匯出內容。本工具不提供關閉預設保護的選項,因為其常見下載路徑應預設安全。
限制明確且從未以靜默上限實作。輸入內容最多可含 1,000,000 JavaScript 字元。陣列最多含 10,000 行,發現的模式最多含 200 欄位,產生的 CSV 最多含 5,000,000 字元。任何邊界被逾越將返回錯誤且不會產生縮短的 CSV。文字區域會持續顯示逾限輸入並在計數器中標示,而非在輸入時自動截斷。
編輯 JSON 會清除先前的 CSV、錯誤與下載 URL。再次轉換會撤銷較舊的下載,並在建立新的 Blob URL 前完成。轉換錯誤不會留下過時的成功狀態,離開頁面會釋放剩餘的 URL。可下載的 MIME 型別為 text/csv,並使用 UTF-8 字符集。預覽包含與 Blob 內相同完整的字串,因此在儲存前可以檢查引號、公式字首、欄位順序與巢狀 JSON。
此轉換器適用於受控資料交換、開發者測試資料、小型匯出與電子表格準備。在來源可能不完整時,請先驗證 JSON,並檢查接收應用程式之匯入選項。CSV 不包含資料型別、巢狀模式、檔案內的字元編碼宣告或通用語法標記。若資料型別與結構重要,請保留原始 JSON,並使用支援模式的流程進行生產遷移或受管制資料處理。
方法與來源
瀏覽器會解析一個非空的JSON物件陣列,依首次遇見順序偵測最多至200欄位,在缺失或空值情況下將其轉為空欄位,並以緊湊格式將巢狀陣列或物件序列化為JSON。危險的字串單元與標題皆會在RFC 4180轉義前加上永久的引號。包含逗號、引號、換行(CR)或段落結束(LF)的欄位將被雙引號包覆,內部引號再做雙重處理;各筆資料以CRLF連結。明確設定的輸入、行、欄位與輸出限制若無部分CSV將無法成功,每項成功轉換皆會產生可取代的本機Blob URL。
常見問題
- 支援哪一種 JSON 形狀?
- 僅支援非空的頂層物件陣列。原始值行、陣列行、null 行以及其他頂層結構皆被拒絕。
- 欄位如何排序?
- 記錄將依序掃描,每當一個欄位首次在解析的物件中出現時,就會被加入。
- 巢狀的物件與陣列會如何處理?
- 它們將被序列化為緊湊的 JSON,並放入單一 CSV 細胞中,然後依照 CSV 規則進行引號包圍。
- 為何某些字串細胞會加上單引號?
- 為防止公式注入,危險的字串值與標題會加上單引號字首,此變更為有意設計,且會顯示相關數量。
- 會上傳資料嗎?
- 目前這個瀏覽器分頁會處理編號 JSON 的解析、結構發現、CSV 的轉義、預覽以及 Blob 下載的建立。
相關工具
- JSON 格式化工具在瀏覽器中格式化、壓縮並驗證 JSON —— 可以美化顯示或壓縮為單行,並精確標示錯誤位置。
- JSON 驗證工具確認 JSON 是否有效,並以行與列為單位精確指出語法錯誤,同時提供結構診斷,全程在瀏覽器中執行。
- XML 格式化工具在瀏覽器中立即美化或壓縮 XML —— 不會上傳任何內容。
- Base64 編碼 / 解碼立即在瀏覽器中編碼或解碼 Base64,完整支援 UTF-8 — 表情符號和重音字元都能使用。
- ANSI 色彩碼產生器建立並複製原始 SGR 逸出序列,並搜尋標準 8 色加亮 8 色的終端機色碼。
- ASCII 表格查詢所有標準 7 位 ASCII 編碼的精確十進位、十六進位、八進位與二進位值。
開發者工具 使用指南
查看全部- JSON to CSV Alternative With Built-In Formula Protection (英文原文)
- Is JSON to CSV Safe to Use Online? A Privacy-First Guide (英文原文)
- Convert .properties Files to JSON Online (英文原文)
- Random MAC Address On or Off: A Developer Guide (英文原文)
- Generate a JWT for Testing: HS256 Tokens in Your Browser (英文原文)
- How to Decode JWT Tokens in Angular Apps (英文原文)
- JSON Schema to Zod: Inference Limits and a Safer Path (英文原文)
- Rust: Convert a Struct to a JSON String With serde (英文原文)
- How to Convert JSON to Excel in Python (英文原文)
- Format a JSON File in VS Code and in Your Browser (英文原文)
- Local JavaScript Playground Alternative for Safe Testing (英文原文)
- How to Convert IPv4 to a 32-Bit Integer for Storage (英文原文)
- Convert Decimal Numbers to IEEE 754 Floating Point Format (英文原文)
- HTTP Status Codes Alternative: A Registry-First Lookup (英文原文)
- How to Edit HTML in a Browser Using a Sandboxed Preview (英文原文)
- Format HTML Code from Notepad++ Without Plugins (英文原文)
- Why Is Hello World Used in Programming: A Practical Guide (英文原文)
- How to Make Flexbox Items Fill the Container Height (英文原文)
- File Signatures List Alternative: Twelve Verified Prefixes (英文原文)
- How to Open Excel Files Online in a Browser Preview (英文原文)