← Tất cả công cụ

Chuyển Đổi CSV sang JSON

Chuyển đổi CSV sang JSON và JSON sang CSV ngay trong trình duyệt. Ánh xạ hàng và header sạch sẽ, xử lý trường có dấu ngoặc kép và dấu phân cách, giữ dữ liệu cục bộ.

CSV và JSON: hai cách mang cùng một dữ liệu

Hầu hết dữ liệu dạng bảng cuối cùng đều tồn tại ở một trong hai định dạng. CSV là ngôn ngữ tự nhiên của bảng tính: tệp văn bản thuần túy trong đó mỗi dòng là một hàng và dấu phẩy phân tách các cột. JSON là ngôn ngữ của API và ứng dụng: định dạng văn bản có cấu trúc được xây dựng từ các đối tượng (cặp khóa và giá trị) và mảng (danh sách có thứ tự). Chúng mô tả cùng thông tin theo các hình dạng rất khác nhau, đó chính xác là lý do tại sao việc chuyển đổi giữa chúng lại thường xuyên xảy ra. Trang này thực hiện chuyển đổi đó theo cả hai hướng, hoàn toàn trong trình duyệt của bạn.

CSV sáng giá ở những nơi mà lưới cảm thấy tự nhiên. Xuất báo cáo từ cơ sở dữ liệu, tải xuống danh sách đơn hàng, hoặc lưu bảng tính từ Excel hay Google Sheets, và bạn hầu như luôn nhận được CSV. Nó nhỏ gọn, con người đọc được, và mọi công cụ phân tích trên đời đều có thể mở nó. JSON sáng giá ở những nơi phần mềm giao tiếp với phần mềm. REST API gửi và nhận nó, tệp cấu hình dùng nó, và JavaScript đọc nó mà không cần thư viện phân tích nào. Khi bạn cần đưa dữ liệu xuất từ bảng tính vào API hoặc kéo phản hồi API vào bảng tính, bạn thực sự đang dịch giữa hai thế giới này.

Bảng CSV phát sáng đang chuyển đổi thành các đối tượng JSON lồng nhau trên nền xanh chàm tối
Bảng CSV phẳng gấp lại thành các đối tượng và mảng JSON lồng nhau.

Cách hàng và tiêu đề trở thành đối tượng

Ánh xạ đơn giản hơn bạn nghĩ. Dòng đầu tiên của tệp CSV thường là hàng tiêu đề, và các tên tiêu đề đó trở thành các khóa trong JSON. Mỗi hàng tiếp theo trở thành một đối tượng, trong đó mỗi ô được ghép nối với tiêu đề tương ứng. Toàn bộ tệp trở thành một mảng các đối tượng đó. Vì vậy CSV với các cột name,email,age biến thành danh sách như [{"name": "Ada", "email": "ada@example.com", "age": "36"}, ...]. Đi theo hướng ngược lại, JSON sang CSV đọc các khóa của đối tượng đầu tiên để xây dựng dòng tiêu đề, sau đó viết một hàng cho mỗi đối tượng. Đây là vòng khứ hồi sạch sẽ, có thể dự đoán được miễn là dữ liệu của bạn thực sự dạng bảng.

Những lưu ý đáng biết

CSV trông đơn giản nhưng ẩn một số cạnh sắc. Lớn nhất là dấu phẩy bên trong trường. Nếu địa chỉ chứa "Berlin, Germany", việc tách ngây thơ theo dấu phẩy sẽ chia giá trị đó thành hai cột. Chuẩn CSV xử lý điều này bằng cách bao các trường như vậy trong dấu ngoặc kép, và dấu ngoặc kép bên trong trường được trích dẫn sẽ nhân đôi (""). Công cụ chuyển đổi tốt tôn trọng các quy tắc đó để dữ liệu của bạn không âm thầm dịch chuyển cột. Cũng hãy chú ý dấu phân cách: nhiều tệp xuất của châu Âu dùng dấu chấm phẩy thay vì dấu phẩy, vì dấu phẩy đã là ký tự phân cách thập phân ở đó. Tab và pipe cũng xuất hiện.

Sự khác biệt sâu hơn là kiểu dữ liệu. CSV không có khái niệm về kiểu dữ liệu nào cả. Mọi thứ đều là văn bản, vì vậy số 42, boolean true, và ô trống đều trông như chuỗi thuần túy. JSON, ngược lại, phân biệt số, chuỗi, boolean, null và cấu trúc lồng nhau. Khi bạn chuyển đổi CSV sang JSON, các giá trị đến dưới dạng chuỗi trừ khi công cụ được yêu cầu diễn giải số và boolean. Chuyển đổi JSON sang CSV có vấn đề ngược lại: các đối tượng và mảng lồng nhau không vừa gọn vào lưới phẳng, vì vậy chúng thường được làm phẳng hoặc stringified thành một ô đơn. Biết điều này trước sẽ tránh bạn thắc mắc tại sao cột "trông sai" sau này.

Lưới bảng tính đang biến đổi thành cây dấu ngoặc JSON phát sáng màu xanh lam và vàng
Lưới bảng tính biến đổi thành cây dấu ngoặc JSON phân nhánh.

Một vòng khứ hồi thực tế

Đây là tình huống thường xuyên xảy ra. Đồng nghiệp gửi cho bạn bảng tính người dùng mới và yêu cầu tải họ qua API nội bộ. API chỉ chấp nhận JSON. Bạn xuất bảng sang CSV, dán vào đây, và nhận lại mảng đối tượng sạch sẵn sàng bỏ vào payload yêu cầu. Sau đó, API trả về danh sách JSON các bản ghi nó đã tạo, và bạn cần chuyển lại cho đồng nghiệp để xem xét. Bạn dán JSON, chuyển sang CSV, và nó mở thẳng trong bảng tính của họ. Không cần script, không cần cài đặt, chỉ hai bản dịch nhanh ở giữa quy trình làm việc bình thường.

Chỉ cục bộ, theo thiết kế

Tất cả điều này chạy trong trình duyệt của bạn. CSV và JSON của bạn được phân tích và chuyển đổi bởi JavaScript trên máy của chính bạn, và không có gì được tải lên máy chủ. Điều đó quan trọng vì các tệp xuất thường chứa tên thật, email, chi tiết đơn hàng, hoặc định danh nội bộ mà bạn không nên dán vào dịch vụ từ xa ngẫu nhiên. Ở đây dữ liệu không bao giờ rời khỏi trang. Nếu bạn muốn dọn dẹp kết quả sau đó, công cụ định dạng JSON của chúng tôi sẽ in đẹp và xác thực nó, và bạn có thể xem phần còn lại của bộ chuyển đổi dữ liệu cho các định dạng liên quan.

Câu hỏi thường gặp

Dữ liệu của tôi có được tải lên bất cứ đâu không?

Không. Quá trình chuyển đổi chạy hoàn toàn trong trình duyệt của bạn sử dụng JavaScript, vì vậy CSV và JSON của bạn ở lại trên thiết bị của chính bạn và không bao giờ được gửi đến máy chủ.

Công cụ chuyển đổi có xử lý dấu phẩy bên trong trường không?

Có. Các trường chứa dấu phẩy nên được bao trong dấu ngoặc kép trong CSV, và trình phân tích tôn trọng những dấu ngoặc kép đó để giá trị vẫn ở một cột duy nhất.

Tại sao số của tôi hiển thị như văn bản trong JSON?

CSV không có kiểu dữ liệu, vì vậy mỗi ô là văn bản thuần túy. Các giá trị trở thành chuỗi JSON trừ khi phân tích số và boolean được áp dụng, vì tệp nguồn không có cách nào phân biệt số với từ.

Điều gì xảy ra với JSON lồng nhau khi tôi chuyển sang CSV?

Lưới phẳng không thể chứa các cấu trúc lồng nhau, vì vậy các đối tượng và mảng lồng nhau thường được làm phẳng hoặc được ghi dưới dạng một giá trị stringified bên trong một ô.

Tôi có thể dùng dấu chấm phẩy hoặc tab thay vì dấu phẩy không?

Có. Nhiều tệp xuất, đặc biệt là của châu Âu, dùng dấu chấm phẩy hoặc tab làm dấu phân cách, và công cụ có thể đọc những dấu đó thay vì dấu phẩy tiêu chuẩn.

Nó có chuyển đổi cả hai hướng không?

Có. Bạn có thể chuyển CSV thành JSON và JSON trở lại CSV, điều này làm cho các vòng khứ hồi giữa bảng tính và API trở nên đơn giản.