Công Cụ Nhanh

Chuyển JSON sang CSV, YAML, XML

Chuyển đổi

2 dòng × 7 cột

Xem trước (20 dòng đầu)

idtenemaildiaChi.tinhdiaChi.quantags.0tags.1
1Nguyễn Văn Anan@vi-du.vnHà NộiCầu Giấyvipmới
2Trần Thị Bìnhbinh@vi-du.vnĐà NẵngHải Châumới

Tệp CSV tải về có BOM UTF-8 nên Excel đọc đúng tiếng Việt. Excel cài tiếng Việt thường dùng dấu chấm phẩy: chọn “Chấm phẩy ;” nếu mở ra bị dồn một cột.

Xử lý ngay trên trình duyệt của bạn. Tệp và dữ liệu không được tải lên máy chủ.

Trả lời nhanh

Dán JSON dạng mảng đối tượng, chọn “JSON → CSV” rồi bấm Tải tệp: mỗi đối tượng thành một dòng, mỗi khoá thành một cột, đối tượng lồng nhau thành cột kiểu diaChi.tinh. Tệp CSV có BOM UTF-8 nên mở bằng Excel không lỗi font tiếng Việt. Công cụ cũng đổi CSV sang JSON, JSON qua lại YAML và JSON sang XML.

Chuyển đổi JSON, CSV, YAML, XML là gì?

Năm chiều chuyển đổi trong một trang, chạy ngay trên trình duyệt: JSON → CSV (làm phẳng đối tượng lồng nhau, chống chèn công thức Excel, chọn dấu phẩy hay chấm phẩy), CSV → JSON (đọc đúng ô có ngoặc kép và xuống dòng, tự nhận dấu phân cách, đổi số và true / false sang đúng kiểu), JSON ↔ YAML (thường dùng cho docker-compose, Kubernetes, GitHub Actions) và JSON → XML. Dữ liệu lớn chạy trong Web Worker; không có gì được tải lên máy chủ.

Minh hoạ chồng thẻ hình dấu ngoặc nhọn đi qua một cái phễu và hiện ra thành bảng tính có hàng cột gọn gàng, cạnh đó là một tờ giấy có các dòng thụt lề

Cách chuyển đổi

  1. 1

    Chọn chiều chuyển đổi ở hàng trên cùng, ví dụ “JSON → CSV”. Ô dữ liệu vào có sẵn ví dụ để thử.

  2. 2

    Dán dữ liệu của bạn hoặc bấm “Mở tệp” để nạp tệp .json, .csv, .yaml (tới 20 MB).

  3. 3

    Chỉnh tuỳ chọn: dấu phân cách, làm phẳng đối tượng lồng nhau, đổi kiểu dữ liệu, tên thẻ gốc XML. Kết quả cập nhật ngay.

  4. 4

    Bấm “Sao chép” hoặc “Tải tệp”. Muốn đổi ngược, chọn chiều ngược lại: kết quả hiện tại tự chuyển thành dữ liệu vào.

Mỗi chiều chuyển đổi làm gì

ChiềuDữ liệu vàoKết quảLưu ý
JSON → CSVMảng đối tượng (hoặc một đối tượng)Mỗi đối tượng một dòng, khoá thành cộtĐối tượng lồng nhau thành cột a.b, mảng thành a.0, a.1
CSV → JSONDòng tiêu đề + các dòng dữ liệuMảng đối tượngCột có dấu chấm dựng lại thành đối tượng lồng nhau
JSON → YAMLJSON bất kỳYAML thụt lề 2 dấu cáchChuỗi dễ hiểu nhầm (true, 007, có dấu :) được đặt trong ngoặc kép
YAML → JSONYAML 1.2 thông dụngJSON đẹpChưa hỗ trợ anchor &, alias *, tag !, nhiều tài liệu ---
JSON → XMLJSON bất kỳXML có khai báo UTF-8Mảng thành thẻ lặp lại; khoá không hợp lệ đổi thành tên thẻ hợp lệ

Vuốt ngang để xem cả bảng →

Ví dụ làm phẳng JSON lồng nhau

JSONCột CSVGiá trị
{ "diaChi": { "tinh": "Hà Nội" } }diaChi.tinhHà Nội
{ "tags": ["vip", "mới"] }tags.0, tags.1vip, mới
{ "donHang": [{ "ma": "A1" }] }donHang.0.maA1
{ "ghiChu": null }ghiChu(ô trống)

Khi đổi ngược CSV → JSON với tuỳ chọn dựng lại đối tượng, cột tags.0, tags.1 lại thành mảng tags.

Ví dụ thực tế

Xuất dữ liệu API ra Excel cho kế toán

Gọi API danh sách đơn hàng, dán JSON vào, chọn “Chấm phẩy ;” nếu Excel máy bạn cài tiếng Việt, tải CSV và mở thẳng bằng Excel: tên khách có dấu hiện đúng, mỗi trường một cột.

Nhập danh sách từ Google Sheets vào mã

Tải Google Sheets về dạng CSV, dán vào chế độ CSV → JSON: được mảng đối tượng dùng ngay trong JavaScript, số điện thoại 0912… vẫn giữ dạng chuỗi nên không mất số 0 đầu.

Chuyển cấu hình docker-compose

Dán docker-compose.yml vào YAML → JSON để kiểm tra cấu trúc hoặc sửa bằng mã, rồi đổi ngược JSON → YAML; chuỗi như "80:80" được giữ trong ngoặc kép đúng chuẩn.

Gửi dữ liệu cho hệ thống chỉ nhận XML

Một số cổng thanh toán, hoá đơn điện tử cũ chỉ nhận XML. Đổi JSON sang XML, đặt tên thẻ gốc theo yêu cầu rồi chỉnh thêm thuộc tính nếu cần.

Lỗi thường gặp và cách xử lý

Mở CSV bằng Excel thì mọi thứ dồn vào một cột.
Excel cài vùng Việt Nam / châu Âu dùng dấu chấm phẩy làm dấu phân cách. Chọn “Chấm phẩy ;” rồi tải lại, hoặc trong Excel dùng Data → From Text/CSV và chọn dấu phẩy.
Tiếng Việt trong Excel bị lỗi font kiểu “Nguyá»…n”.
Mở tệp tải từ nút “Tải tệp” (có BOM UTF-8). Nếu dán văn bản sang tệp khác, lưu lại với mã hoá UTF-8 with BOM.
Số điện thoại, mã bưu chính mất số 0 đầu.
Công cụ giữ dạng chuỗi cho số bắt đầu bằng 0 khi đổi CSV → JSON. Trong Excel, định dạng cột là Text trước khi dán dữ liệu.
Ô bắt đầu bằng dấu = biến thành công thức.
Giữ tuỳ chọn “Chống chèn công thức Excel”: ô bắt đầu bằng = + - @ được thêm dấu ' phía trước, Excel hiện đúng chữ thay vì chạy công thức (một kiểu tấn công CSV injection).
YAML báo lỗi ở dòng có tab.
YAML chỉ cho thụt lề bằng dấu cách. Thay tab bằng 2 dấu cách.
YAML dùng &anchor và *alias báo chưa hỗ trợ.
Bộ đọc hỗ trợ tập YAML thông dụng. Với tệp dùng anchor (hay gặp trong GitLab CI), hãy triển khai anchor bằng tay hoặc dùng công cụ dòng lệnh như yq.

CSV được đọc và ghi theo chuẩn nào

Công cụ theo RFC 4180: ô chứa dấu phân cách, xuống dòng hay dấu ngoặc kép được bọc trong ngoặc kép, và một dấu ngoặc kép bên trong được viết thành "". Nhờ vậy địa chỉ “12 Lê Lợi, Quận 1” không bị tách làm hai cột.

Khi đọc CSV, dấu phân cách được đoán từ dòng đầu (phẩy, chấm phẩy, tab, gạch đứng). Ô trống thành null, “true / false” thành boolean, số thành số; số có 0 đứng đầu hoặc dài hơn 15 chữ số giữ nguyên dạng chuỗi để không mất dữ liệu.

Giới hạn của bộ đọc YAML

Bộ đọc YAML viết riêng cho công cụ, hỗ trợ phần YAML 1.2 hay dùng trong cấu hình: mapping, danh sách (kể cả danh sách đối tượng), chuỗi trong ngoặc đơn / kép, khối nhiều dòng | và >, tập hợp dạng dòng [a, b] và {a: 1}, chú thích #.

  • Chưa hỗ trợ anchor (&), alias (*), merge key (<<), tag (!!str) và tệp nhiều tài liệu ngăn bởi ---.
  • Theo YAML 1.2: yes / no / on / off là chuỗi, không phải boolean (khác YAML 1.1 cũ).
  • Khi xuất YAML, các chuỗi dễ bị hiểu nhầm ("true", "007", "a: b") luôn được đặt trong ngoặc kép.

Thuật ngữ

JSON
Định dạng dữ liệu dạng cặp khoá – giá trị và mảng, phổ biến nhất ở API web.
CSV
Bảng dữ liệu dạng văn bản, mỗi dòng một bản ghi, các ô ngăn bằng dấu phân cách.
YAML
Định dạng cấu hình dễ đọc, dùng thụt lề thay cho dấu ngoặc.
XML
Định dạng dữ liệu dạng thẻ mở / đóng, còn dùng nhiều ở hệ thống doanh nghiệp, hoá đơn điện tử.
Làm phẳng (flatten)
Biến đối tượng lồng nhau thành các khoá một tầng như a.b.c để vừa với bảng.
BOM
Ba byte đánh dấu đầu tệp UTF-8, giúp Excel nhận đúng tiếng Việt.

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

Dữ liệu của tôi có bị gửi đi không?

Không. Mọi chuyển đổi chạy trong trình duyệt của bạn (dữ liệu lớn chạy trong Web Worker), không tải lên máy chủ.

Tệp lớn tối đa bao nhiêu?

Tới 20 MB mỗi tệp. Dữ liệu từ 200.000 ký tự trở lên được xử lý trong Web Worker để trang không khựng.

Vì sao có dấu ' trước một số ô trong CSV?

Đó là tuỳ chọn chống chèn công thức: ô bắt đầu bằng = + - @ được thêm ' để Excel không chạy nó như công thức. Tắt tuỳ chọn nếu dữ liệu không mở bằng bảng tính.

JSON phải có dạng thế nào để ra CSV đẹp?

Tốt nhất là mảng các đối tượng có khoá giống nhau. Khoá thiếu ở bản ghi nào sẽ là ô trống; một đối tượng đơn lẻ ra một dòng.

Có đổi được XML sang JSON không?

Hiện công cụ chỉ chiều JSON → XML. XML có thuộc tính và văn bản trộn lẫn nên không có một cách đổi sang JSON duy nhất.

Có đổi được tệp Excel .xlsx không?

Hãy lưu bảng tính dưới dạng CSV UTF-8 (File → Save As → CSV UTF-8) rồi dùng chế độ CSV → JSON.

Đánh giá và bình luận

Đang tải…