Chuyển đổi JSON sang CSV
Làm phẳng mảng JSON thành các hàng bảng tính rõ ràng.
Một API gửi về dữ liệu định dạng JSON, nhưng đồng nghiệp trong nhóm chỉ muốn mở xem trên bảng tính Excel. Yêu cầu này tưởng chừng đơn giản nhưng thực tế khá phức tạp, bởi vì JSON cho phép lồng các đối tượng và mảng sâu vào nhau, trong khi bảng tính chỉ xử lý dữ liệu dạng bảng phẳng gồm các hàng và cột cố định.
Các bước chuyển JSON sang CSV
- Dán hoặc tải lên mảng JSON mà bạn muốn chuyển đổi vào khung nhập liệu.
- Hệ thống sẽ làm phẳng các đối tượng lồng nhau thành các tiêu đề cột phân tách bằng dấu chấm, chẳng hạn như
address.city. - Kiểm tra cách các giá trị mảng bên trong từng bản ghi được xử lý, thường là gộp chung vào một ô hoặc tách thành các cột bổ sung.
- Nhấn nút chuyển đổi rồi rà soát lại hàng tiêu đề trước khi đưa vào sử dụng.
- Tải tệp CSV về máy và mở bằng Excel, Google Sheets hoặc phần mềm quản lý cơ sở dữ liệu.
Bản chất việc làm phẳng cấu trúc JSON sang bảng tính
Một hàng trong bảng tính luôn có cấu trúc hình chữ nhật: số lượng cột cố định và mỗi ô chỉ chứa một giá trị đơn lẻ. Ngược lại, một bản ghi JSON có thể phân nhánh sâu thành ba cấp đối tượng hoặc chứa mảng với độ dài bất kỳ. Do đó, không có một quy chuẩn cố định duy nhất nào có thể biến đổi cấu trúc này sang dạng lưới mà giữ nguyên vẹn toàn bộ ngữ cảnh.
Quy ước phổ biến nhất là dùng ký hiệu dấu chấm. Ví dụ cấu trúc {"address": {"city": "Turin", "zip": "10100"}} sẽ được tách thành hai cột riêng biệt là address.city và address.zip. Cách xử lý này phát huy hiệu quả với các đối tượng lồng nhau, nhưng sẽ phức tạp hơn đối với mảng vì độ dài mảng có thể khác nhau giữa các bản ghi trong khi bảng tính lại cần số cột đồng nhất trên mọi hàng.
Cách xử lý trường mảng khi xuất sang CSV
- Một mảng chuỗi ngắn, chẳng hạn danh sách thẻ phân loại, thường được ghép lại trong một ô bằng dấu phân cách như dấu chấm phẩy.
- Một mảng chứa các đối tượng đôi khi được chuyển đổi ngược thành chuỗi JSON thô nằm trọn trong một ô duy nhất.
- Một số công cụ sẽ tách mảng có độ dài cố định thành các cột được đánh số tuần tự như
colors.0,colors.1. - Một bản ghi chứa mảng rỗng sẽ tạo ra một ô trống, khó phân biệt với một trường bị thiếu hoàn toàn khi nhìn trên bảng tính CSV.
- Mỗi phương án đều có ưu nhược điểm riêng, vì vậy bạn cần lưu ý cách dữ liệu của mình được định dạng sau khi xuất.
Câu hỏi thường gặp về chuyển đổi JSON sang CSV
Tệp JSON nào cũng có thể chuyển đổi mượt mà sang CSV không?
Một mảng phẳng gồm các đối tượng đơn giản có chung tập hợp khóa sẽ chuyển đổi rất nhanh và gọn gàng. Những tệp JSON lồng nhau phức tạp hoặc có cấu trúc không đồng đều, nơi các bản ghi chứa các trường khác nhau hoặc độ dài mảng chênh lệch lớn, sẽ tạo ra bảng tính nhiều ô trống hơn.
Điều gì xảy ra nếu các bản ghi JSON có các khóa khác nhau?
Kết quả CSV sẽ có đủ các cột tương ứng với mọi khóa xuất hiện trên toàn bộ các bản ghi. Bản ghi nào thiếu trường dữ liệu đó sẽ nhận một ô trống tương ứng. Điều này hoàn toàn bình thường nhưng có thể khiến hàng tiêu đề dài hơn bất kỳ bản ghi riêng lẻ nào.
Tại sao một số con số lại có dấu ngoặc kép bao quanh trong tệp kết quả?
Phần mềm bảng tính thường tự động đặt dấu ngoặc kép để bảo vệ các giá trị dễ bị đọc nhầm định dạng, ví dụ như mã định danh dài hoặc dãy số bắt đầu bằng số không. Đây là cơ chế của Excel khi mở tệp chứ không phải do lỗi chuyển đổi.
Tôi có thể chuyển ngược tệp CSV đã làm phẳng về lại JSON gốc không?
Chỉ có thể khôi phục một phần. Nếu công cụ sử dụng ký hiệu dấu chấm để đặt tên cột, quá trình tái tạo đối tượng lồng nhau diễn ra khá chính xác; tuy nhiên, các mảng đã bị ghép chung vào một ô sẽ mất đi ranh giới ban đầu và khó khôi phục trọn vẹn.
Dữ liệu của tôi có được xử lý an toàn trên máy chủ không?
Có. Dữ liệu được gửi lên máy chủ để tiến hành thuật toán chuyển đổi, nhưng nội dung JSON của bạn không bị lưu trữ lại sau khi xử lý xong.