Chuyển đổi CSV sang JSON
Chuyển một bảng CSV thành mảng JSON gồm các object, hoàn toàn trong trình duyệt của bạn.
Chạy hoàn toàn trong trình duyệt của bạn. Không có gì được tải lên, ghi log hay lưu trữ.
Dán một tệp xuất từ bảng tính và nhận lại một mảng JSON, mỗi dòng một object, với khóa là tên các cột. Mọi thứ diễn ra trong trình duyệt của bạn, nên một tệp đầy hồ sơ khách hàng, bảng lương hay dòng đơn hàng không bao giờ rời khỏi máy bạn.
Cách hoạt động
Tài liệu được đọc từng ký tự theo RFC 4180, nhờ đó một trường có thể chứa ký tự phân cách, dấu xuống dòng hay chính dấu ngoặc kép: mọi thứ nằm trong ngoặc kép đều được hiểu nguyên văn, và hai dấu ngoặc kép liền nhau là một dấu ngoặc kép. Tách theo dấu phẩy và dấu xuống dòng sẽ hỏng ngay ở địa chỉ đầu tiên có dấu phẩy.
Dòng đầu tiên trở thành tên các cột trừ khi bạn chọn khác, khi đó mỗi dòng được trả về dưới dạng mảng thay vì object. Tên để trống sẽ thành column_1, column_2, cứ thế theo vị trí, và tên bị trùng sẽ được thêm hậu tố số, vì hai khóa giống hệt nhau trong một object nghĩa là cột đầu tiên lặng lẽ biến mất.
Mọi giá trị đều được trả về dưới dạng chuỗi, vì CSV không có kiểu dữ liệu. Đọc kiểu dữ liệu thay vào đó là một ô đánh dấu chứ không phải hành vi mặc định: chính việc suy luận kiểu đã biến mã sản phẩm 007 thành số 7. Khi được bật, nó thận trọng có chủ ý: số 0 ở đầu, dấu cộng ở đầu hay khoảng trắng bao quanh đều giữ giá trị ở dạng chuỗi, và một số nguyên quá lớn để giữ nguyên dưới dạng double cũng vậy.
Ví dụ
| Trường hợp | Dữ liệu nhập | Kết quả |
|---|---|---|
| Một trường trong ngoặc kép có chứa ký tự phân cách | name,city "Doe, John",Geneva | [ { "name": "Doe, John", "city": "Geneva" } ] |
Câu hỏi thường gặp
Tệp của tôi dùng dấu chấm phẩy. Đó có còn là CSV không?
Có, và đó là trường hợp bình thường ở nhiều nơi tại châu Âu. Một bảng tính lưu CSV theo thiết lập vùng viết số thập phân bằng dấu phẩy thì không thể dùng thêm dấu phẩy làm ký tự phân cách, nên nó dùng dấu chấm phẩy. Hãy chọn nó trong danh sách ký tự phân cách; tab và gạch đứng có ở đó cũng vì lý do tương tự.
Vì sao mã bưu chính của tôi bị mất số 0 ở đầu?
Nó không bị mất, trừ khi bạn yêu cầu suy luận kiểu. Không có tùy chọn đó, mọi giá trị đều giữ nguyên dạng chuỗi đúng như khi được viết. Khi bật nó, các giá trị bắt đầu bằng số 0 vẫn được giữ ở dạng chuỗi chính vì lý do này, cùng với mọi giá trị bắt đầu bằng dấu cộng hoặc có khoảng trắng bao quanh.
Điều gì xảy ra với một dòng có số trường khác?
Dòng ngắn được bổ sung bằng chuỗi rỗng, vì trường rỗng ở cuối thường bị chương trình tạo ra tệp lược bỏ. Dòng dài giữ lại các giá trị thừa với tên theo vị trí thay vì loại bỏ chúng, nên không có gì biến mất mà bạn không thấy.
Tệp của tôi có bị tải lên đâu không?
Không. Trang tải một đoạn script nhỏ phân tích tài liệu ngay trên máy. Bạn có thể ngắt kết nối mạng sau khi trang đã tải xong và công cụ vẫn hoạt động.
Cần biết
- Mọi thứ diễn ra trong trình duyệt của bạn. Tài liệu không bị tải lên, không bị ghi log và không được lưu trữ.
- Cách đặt ngoặc kép tuân theo RFC 4180: một trường được đặt trong ngoặc kép khi nó chứa ký tự phân cách, dấu ngoặc kép hoặc dấu xuống dòng, và dấu ngoặc kép bên trong một trường như vậy được viết hai lần. Dấu gạch chéo ngược là ký tự bình thường và không bao giờ được coi là ký tự thoát.