Chuyển JSON sang CSV - trải phẳng dữ liệu lồng nhau
Công cụ chuyển JSON sang CSV
Công cụ này làm gì
Ai đó gửi cho bạn một phản hồi API, còn người khác lại muốn nó nằm trong bảng tính. Công việc chỉ có vậy - và khó hơn vẻ ngoài, vì JSON là một cái cây còn bảng tính là một lưới ô. Trang này đưa ra ba quyết định biến cái này thành cái kia, và cho bạn thấy nó đã quyết ra sao.
Cách dùng
- 1 Dán JSON, hoặc thả một tệp .json vào.
- 2 Chọn ký tự phân tách - dùng dấu chấm phẩy nếu tệp dành cho Excel.
- 3 Bấm Chuyển đổi, rồi sao chép kết quả hoặc tải tệp .csv.
Cây không vừa lưới ô, nên phải trải phẳng
Một đối tượng lồng nhau thành cột có dấu chấm: {"city":{"name":"London"}} thành cột city.name. Không làm vậy thì công cụ sẽ ghi "[object Object]" vào ô - tệp mở được, trông hợp lệ, và một nửa dữ liệu của bạn biến mất. Danh sách các giá trị đơn giản được gộp vào một ô; danh sách chứa đối tượng thì tách thành các cột đánh số.
[
{
"name": "Ada",
"city": { "name": "London" },
"note": "Loves \"tea\""
},
{
"name": "Grace",
"city": { "name": "New York, NY" },
"tags": ["math", "navy"]
}
]
name,city.name,note,tags Ada,London,"Loves ""tea""", Grace,"New York, NY",,math; navy
Cột lấy từ mọi dòng, không phải dòng đầu
Trong dữ liệu thật, các bản ghi hiếm khi có cùng bộ trường: một trường tùy chọn xuất hiện ở bản ghi thứ bốn mươi và trước đó thì không hề. Công cụ chỉ đọc bản ghi đầu tiên sẽ lặng lẽ bỏ mất cột đó, và trong kết quả chẳng có gì báo. Ở đây dòng tiêu đề là hợp của mọi khóa từng gặp, theo thứ tự xuất hiện lần đầu, còn bản ghi thiếu trường thì nhận ô trống.
Một dấu phẩy lạc làm lệch mọi cột
Bất kỳ giá trị nào chứa ký tự phân tách, dấu nháy hay dấu xuống dòng đều phải được bọc trong dấu nháy, và dấu nháy bên trong phải viết hai lần. Chuẩn CSV yêu cầu như vậy, và đó cũng là chỗ các công cụ sai nhiều nhất. Một địa chỉ có dấu phẩy, một ghi chú có xuống dòng, một cái tên có dấu lược - mỗi thứ đều lặng lẽ phá hỏng tệp nào bỏ qua bước này.
Excel làm hỏng tệp CSV theo hai cách khác nhau
Thứ nhất, không có dấu thứ tự byte thì nó đọc UTF-8 như bảng mã địa phương, khiến chữ có dấu và ký tự ngoài Latin nát bét. Thứ hai, ở nhiều vùng nó chờ dấu chấm phẩy chứ không phải dấu phẩy, rồi nhét cả dòng vào một cột duy nhất. Ở đây cả hai đều là tùy chọn và đều mặc định tắt - vì chuẩn nói dấu phẩy và không dấu, còn tệp thì thường đi tới một đoạn mã chứ không phải bảng tính.