跳至正文

CSV ↔ JSON 轉換器

支援 CSV 與 JSON 格式雙向轉換的免費線上工具。

Examples

CSV Example:

name,age,city
John,30,New York
Jane,25,Los Angeles
Bob,35,Chicago

JSON Example:

[
  {"name": "John", "age": "30", "city": "New York"},
  {"name": "Jane", "age": "25", "city": "Los Angeles"},
  {"name": "Bob", "age": "35", "city": "Chicago"}
]

主要功能

  • 雙向轉換: CSV → JSON、JSON → CSV
  • 分隔符號選擇: 逗號、分號、Tab、直線
  • 標頭選項: 將第一行作為標頭使用
  • JSON 縮排: 2/4 個空格或壓縮
  • 交換功能: 快速將結果轉換為輸入
  • 即時複製: 複製轉換結果

什麼是 CSV?

CSV (Comma-Separated Values) 是以逗號分隔值的文字格式。

CSV 範例

name,age,city
John,30,New York
Jane,25,Los Angeles
Bob,35,Chicago

特性

  • 簡單且輕量
  • 在 Excel 中易於開啟
  • 適合試算表資料交換
  • 無法表示巢狀結構

什麼是 JSON?

JSON (JavaScript Object Notation) 是 JavaScript 物件格式的資料結構。

JSON 範例

[
{"name": "John", "age": "30", "city": "New York"},
{"name": "Jane", "age": "25", "city": "Los Angeles"},
{"name": "Bob", "age": "35", "city": "Chicago"}
]

特性

  • 結構化資料表示
  • 支援巢狀結構
  • 廣泛應用於 Web API
  • 與 JavaScript 自然整合

轉換選項

分隔符號 (Delimiter)

分隔符號字元使用案例
逗號,最常見 (標準 CSV)
分號;歐洲地區 (數字使用逗號)
Tab\tTSV 檔案、複製/貼上
直線``

標頭行

包含標頭:

name,age,city
John,30,New York

[{"name": "John", "age": "30", "city": "New York"}]

沒有標頭:

John,30,New York

[["John", "30", "New York"]]

使用案例

1. Excel → JSON

# 從 Excel 複製
Product,Price,Stock
Apple,1000,50
Banana,500,100

# 轉換為 JSON
[
{"Product": "Apple", "Price": "1000", "Stock": "50"},
{"Product": "Banana", "Price": "500", "Stock": "100"}
]

2. API 資料 → CSV

# API 回應
[
{"id": 1, "name": "Item A", "price": 100},
{"id": 2, "name": "Item B", "price": 200}
]

# 匯出為 CSV
id,name,price
1,Item A,100
2,Item B,200

3. 資料庫備份

# 將 SQL 結果儲存為 CSV
user_id,username,email
1,john_doe,john@example.com
2,jane_smith,jane@example.com

# 轉換為 JSON 以匯入 NoSQL

程式設計範例

JavaScript

// CSV → JSON
const csv = `name,age,city
John,30,New York
Jane,25,Los Angeles`;

const lines = csv.split('\n');
const headers = lines[0].split(',');
const result = [];

for (let i = 1; i < lines.length; i++) {
const obj = {};
const values = lines[i].split(',');
headers.forEach((header, index) => {
obj[header] = values[index];
});
result.push(obj);
}

console.log(JSON.stringify(result, null, 2));

Python

import csv
import json

# CSV → JSON
with open('data.csv', 'r') as f:
reader = csv.DictReader(f)
data = list(reader)

with open('data.json', 'w') as f:
json.dump(data, f, indent=2)

# JSON → CSV
with open('data.json', 'r') as f:
data = json.load(f)

with open('data.csv', 'w', newline='') as f:
writer = csv.DictWriter(f, fieldnames=data[0].keys())
writer.writeheader()
writer.writerows(data)

注意事項

CSV 的限制

  1. 巢狀結構: CSV 只能表示平面資料
  2. 資料類型: 所有值都被視為字串
  3. 特殊字元: 包含逗號或換行時需要引號

JSON 的限制

  1. 檔案大小: 比 CSV 容量大
  2. 人類閱讀: 複雜結構可讀性低
  3. Excel 相容性: 無法直接開啟 (需要轉換)

CSV 格式注意事項

引號處理

# 值中有逗號時用引號包住
name,description
"Smith, John","Software Developer"
"Doe, Jane","Data Analyst, Manager"

跳脫

# 引號內的引號要寫兩次
name,quote
John,"He said ""Hello"""

常見問題

Q: CSV 中的空值如何處理?

A: 在 JSON 中轉換為空字串("")。

Q: JSON 的巢狀物件如何處理?

A: 此工具僅支援平面結構。巢狀物件可能會轉換為字串。

Q: 可以處理大型檔案嗎?

A: 依瀏覽器記憶體而定。非常大的檔案請使用伺服器端工具。

Q: 可以直接轉換 Excel 檔案嗎?

A: 不行。請先在 Excel 中儲存為 CSV 後使用。

相關工具

隱私保護

此工具完全在客戶端運作。轉換的資料不會傳送到伺服器,僅在瀏覽器中處理。

💬 這個工具對您有幫助嗎?

如果您有任何疑問或改進建議,歡迎隨時提供回饋!