Google Sheet to JSON: chuyển Google Sheet công khai sang JSON để dùng trong website, ứng dụng
Công cụ Google Sheet to JSON này đọc một bảng tính Google Sheets đã chia sẻ công khai, lấy dữ liệu dạng CSV từ chính Google rồi đổi sang JSON theo kiểu bạn cần: mảng object, mảng mảng hoặc object tra theo mã. Bạn chọn sheet, dòng tiêu đề, cách đoán kiểu số và true/false, cách ghi ô trống, và nhận ngay đoạn JSON để dán vào code hoặc tải về file .json. Không cần tạo khóa API, không cần đăng nhập Google.
Tính năng nổi bật
- Dán link chia sẻ Google Sheets (dạng /edit, có #gid= hoặc ?gid=, có /u/0/) hoặc chỉ ID bảng tính; trình duyệt tải CSV thẳng từ docs.google.com, không qua máy chủ trung gian
- Tự đọc danh sách sheet (tên và gid) từ trang xem công khai của bảng tính để chọn sheet; nếu không đọc được thì dùng gid trong link
- Hiện sẵn link CSV export của sheet đang chọn để dùng trực tiếp trong code
- Chế độ Dán CSV cho dữ liệu từ file CSV, Excel hay Google Sheets riêng tư: tự nhận dấu phẩy, chấm phẩy, tab, gạch đứng
- Chọn dòng tiêu đề (0 khi không có tiêu đề), xem nhanh 12 dòng đầu với dòng tiêu đề tô xám; tiêu đề trống thành tên cột A, B, C, tiêu đề trùng thêm hậu tố _2
- Ba kiểu đầu ra: mảng object, mảng mảng (dòng đầu là tiêu đề), object tra theo cột khóa có báo khóa trùng (giữ dòng đầu) và dòng có khóa trống
- Đoán kiểu: chữ số thuần thành number, giữ chuỗi có số 0 đầu như 0901 và số nguyên vượt 2^53; TRUE/FALSE thành true/false; mỗi loại tắt được riêng
- Ba cách ghi ô trống: null, chuỗi rỗng hoặc bỏ hẳn khóa khỏi object
- Tiêu đề có dấu chấm như diachi.tinh thành object lồng; tự bỏ dòng trống và các cột trống ở cuối mà Google hay đệm thêm
- Thụt lề 2 hoặc 4 dấu cách, tab hoặc thu gọn một dòng; nút Sao chép JSON và Tải file .json
Dùng Google Sheets làm nguồn dữ liệu nhẹ
Nhiều dự án nhỏ dùng Google Sheets như một cơ sở dữ liệu đơn giản: danh sách sản phẩm cho trang giới thiệu, bảng giá, câu hỏi thường gặp, lịch sự kiện, cấu hình cho ứng dụng. Người không biết code sửa trên bảng tính, còn lập trình viên cần dữ liệu đó ở dạng JSON. Cách chính thức là gọi Google Sheets API, phải tạo dự án trên Google Cloud, bật API, tạo khóa và lo giới hạn lượt gọi. Với bảng tính đã công khai, Google cho tải sẵn bản CSV; công cụ này lấy bản CSV đó và đổi sang JSON với đủ tùy chọn về kiểu dữ liệu, giúp bạn có file JSON tĩnh để đưa vào mã nguồn, hoặc xem nhanh cấu trúc JSON trước khi viết đoạn code tự đọc CSV.
Lợi ích khi sử dụng
- Không cần khóa API, không cần tài khoản Google Cloud
- Không xin quyền vào tài khoản Google của bạn
- Kiểu dữ liệu đúng ngay từ đầu, không phải sửa chuỗi thành số trong code
- Mã có số 0 đầu không bị đổi thành số
- Có link CSV sẵn để tự viết đoạn đọc dữ liệu định kỳ
- Dùng được cả với CSV dán tay khi bảng tính không công khai
Cách chuyển Google Sheet sang JSON
- 1Trên Google Sheets, bấm Chia sẻ, chọn Bất kỳ ai có đường liên kết, quyền Người xem, rồi sao chép đường liên kết.
- 2Chọn Link Google Sheet, dán link vào ô và bấm Đọc sheet. Nếu bảng tính có nhiều sheet, chọn sheet trong ô Sheet.
- 3Xem bảng trong mục Xem nhanh dữ liệu và chỉnh ô Dòng tiêu đề nếu tiêu đề không nằm ở dòng 1.
- 4Chọn Kiểu đầu ra; với Object theo cột khóa, chọn thêm Cột khóa.
- 5Chọn các tùy chọn đoán kiểu, cách ghi Ô trống, Thụt lề.
- 6Bấm Sao chép JSON hoặc Tải file .json. Dữ liệu không có link công khai thì chọn Dán CSV và dán vào ô.
Công cụ lấy dữ liệu từ Google như thế nào
Mỗi bảng tính Google Sheets có một ID dài nằm giữa /d/ và /edit trong đường liên kết, mỗi sheet bên trong có một số gid, thấy ở phần #gid= cuối link khi bạn mở sheet đó. Với bảng tính chia sẻ công khai, Google cho tải nội dung một sheet dạng CSV qua địa chỉ docs.google.com/spreadsheets/d/<ID>/export?format=csv&gid=<gid>. Địa chỉ này trả về tiêu đề cho phép trình duyệt ở trang web khác đọc (CORS), nên công cụ gọi thẳng từ trình duyệt của bạn tới Google, không có máy chủ nào ở giữa. Danh sách sheet được đọc từ trang xem công khai htmlview của bảng tính; đây không phải giao diện lập trình chính thức của Google nên có thể thay đổi, khi đó công cụ vẫn đọc được sheet theo gid trong link bạn dán.
Ba kiểu JSON và khi nào dùng
Mảng object là kiểu phổ biến nhất: mỗi dòng là một object, tên khóa lấy từ dòng tiêu đề, như [{"ten": "An", "tuoi": 30}]. Kiểu này dễ đọc, hợp để lặp hiển thị danh sách trong React, Vue hay vòng lặp của bất kỳ ngôn ngữ nào. Mảng mảng giữ nguyên dạng bảng, dòng đầu là tiêu đề, phần sau là dữ liệu; kích thước nhỏ hơn vì không lặp tên khóa, hợp với thư viện vẽ biểu đồ, bảng dữ liệu hoặc khi bạn muốn tự xử lý. Object theo cột khóa lấy giá trị một cột (thường là mã) làm tên khóa ngoài cùng, như {"SP01": {...}}, để tra cứu theo mã mà không phải tìm trong mảng. Với kiểu này, mã phải duy nhất; công cụ giữ dòng đầu tiên của mỗi mã, liệt kê các mã bị trùng và bỏ dòng có ô khóa trống.
Đoán kiểu số, true/false và ô trống
CSV chỉ có chữ, nên mọi giá trị ban đầu đều là chuỗi. Khi bật đổi chữ số, công cụ chỉ đổi những chuỗi đúng dạng số JSON: số nguyên, số thập phân dùng dấu chấm, có thể có dấu âm và phần mũ như 1e3. Chuỗi bắt đầu bằng số 0 như 0901234567, 007 được giữ là chuỗi vì đó thường là mã hoặc số điện thoại. Số nguyên lớn hơn 2^53 (9.007.199.254.740.992) cũng giữ là chuỗi, vì JavaScript không biểu diễn chính xác được và sẽ làm sai các chữ số cuối, điều hay gặp với mã đơn hàng, ID dài. TRUE và FALSE, cách Google Sheets ghi ô hộp kiểm, được đổi thành true và false. Ô trống có thể ghi null, ghi chuỗi rỗng, hoặc bỏ hẳn khóa để JSON gọn hơn; chọn theo cách code của bạn kiểm tra giá trị thiếu.
Định dạng số trên Google Sheets ảnh hưởng ra sao
Bản CSV mà Google xuất ra chứa giá trị đang hiển thị trong ô, không phải giá trị gốc. Nếu cột giá được định dạng tiền tệ, CSV sẽ có dạng 1.234.000 ₫ hoặc $1,234.00 tùy cài đặt ngôn ngữ của bảng tính, và công cụ giữ nó là chuỗi vì không đúng dạng số thuần. Ngày tháng cũng ra theo định dạng hiển thị. Nếu muốn nhận số thật trong JSON, hãy chọn cột đó trên Google Sheets và đặt Định dạng, Số, Văn bản thuần hoặc định dạng số không có dấu phân cách hàng nghìn. Với ngày, nên dùng định dạng năm-tháng-ngày (2026-10-27) để code dễ đọc lại. Công thức trong ô không được xuất, chỉ có kết quả của công thức.
Object lồng từ tiêu đề có dấu chấm
Khi bật tùy chọn object lồng, tiêu đề như diachi.tinh và diachi.huyen tạo ra một object diachi chứa hai khóa tinh và huyen, thay vì hai khóa phẳng có dấu chấm trong tên. Cách đặt tiêu đề này giúp người nhập liệu vẫn làm việc với bảng phẳng quen thuộc, còn lập trình viên nhận cấu trúc gọn để dùng. Tùy chọn chỉ tạo object lồng, không tạo mảng; nếu một cột tên a và một cột tên a.b cùng tồn tại, cột a.b sẽ thay giá trị của a bằng một object. Tên khóa đặc biệt như __proto__ được ghi như khóa thường và không làm thay đổi cấu trúc object.
Ví dụ: đưa bảng giá trên Google Sheets lên website
Giả sử bộ phận bán hàng giữ bảng giá trên Google Sheets với các cột ma, ten, gia, con_hang. Bạn đặt định dạng cột gia là số không phân cách, cột con_hang dùng hộp kiểm. Dán link vào công cụ, chọn Object theo cột khóa với cột khóa là ma, bạn nhận JSON dạng {"SP01": {"ma": "SP01", "ten": "...", "gia": 125000, "con_hang": true}}, trong đó gia đã là số và con_hang là true/false. Lưu file .json vào thư mục dữ liệu của dự án và dùng khi dựng trang. Khi bảng giá đổi, chỉ cần đọc lại sheet và thay file. Nếu muốn trang tự cập nhật, hãy dùng link CSV hiện trong công cụ để code của bạn tải định kỳ, đổi sang JSON theo cùng quy tắc và lưu đệm vài phút để không gọi Google ở mỗi lượt xem.
Bảng tính riêng tư và các giới hạn
Công cụ chỉ đọc được bảng tính chia sẻ ở chế độ Bất kỳ ai có đường liên kết đều có thể xem. Bảng tính riêng tư, chỉ chia sẻ cho email cụ thể hoặc chỉ trong tổ chức sẽ báo lỗi không đọc được; công cụ không đăng nhập và không xin quyền OAuth vào tài khoản Google. Với dữ liệu riêng tư, bạn mở bảng tính, chọn vùng dữ liệu, sao chép rồi dùng chế độ Dán CSV, hoặc tải về dạng CSV rồi mở bằng trình soạn thảo và dán vào. Link Xuất bản lên web (dạng /d/e/2PACX-...) không được nhận, hãy dùng link chia sẻ thông thường. Dữ liệu là bản chụp tại thời điểm đọc; khi bảng tính thay đổi, bạn cần đọc lại. Nếu cần dữ liệu luôn mới, hãy để code của bạn tự gọi link CSV hiện trong công cụ.
Câu hỏi thường gặp (FAQ)
Dùng Google Sheet to JSON online thế nào?
Chia sẻ bảng tính ở chế độ Bất kỳ ai có đường liên kết, dán link vào công cụ và bấm Đọc sheet. Chọn kiểu đầu ra và các tùy chọn, rồi bấm Sao chép JSON hoặc Tải file .json. Không cần khóa API hay đăng nhập.
Có đọc được Google Sheet riêng tư không?
Không. Công cụ không đăng nhập và không xin quyền vào tài khoản Google, nên chỉ đọc được bảng tính công khai qua link. Với dữ liệu riêng tư, hãy sao chép vùng dữ liệu hoặc tải CSV rồi dùng chế độ Dán CSV.
Vì sao báo không đọc được sheet?
Thường do bảng tính chưa chia sẻ ở chế độ Bất kỳ ai có đường liên kết, link bị thiếu ký tự, hoặc sheet với gid trong link đã bị xóa. Hãy mở link trong cửa sổ ẩn danh: nếu Google bắt đăng nhập thì bảng tính chưa công khai.
Làm sao chọn sheet khác trong cùng bảng tính?
Nếu bảng tính có nhiều sheet, ô Sheet hiện danh sách tên và gid để chọn. Nếu danh sách không hiện, mở sheet cần lấy trên Google Sheets, sao chép link có phần #gid= ở cuối rồi dán lại.
gid là gì?
gid là số định danh của từng sheet trong một bảng tính, thấy ở cuối đường liên kết dạng #gid=123456 khi bạn mở sheet đó. Sheet đầu tiên thường có gid là 0. Link CSV cần cả ID bảng tính và gid để biết lấy sheet nào.
Dùng n8n hoặc Apps Script để chuyển Google Sheet sang JSON thì khác gì?
Node Google Sheets của n8n hay một đoạn Google Apps Script trả về JSON là cách hợp khi cần đọc dữ liệu liên tục, tự động theo lịch hoặc cả bảng tính riêng tư, nhưng phải đăng nhập, cấp quyền và dựng quy trình. Công cụ này làm một việc gọn hơn: đọc bảng tính công khai một lần, cho bạn chỉnh kiểu JSON rồi sao chép hoặc tải file .json tĩnh. Bạn cũng có thể lấy dòng Link CSV dùng trong code hiện sau khi đọc sheet để tự đọc trong code mà không cần khóa API.
Có chuyển ngược JSON thành bảng để dán vào Google Sheet được không?
Công cụ này chỉ đi một chiều, từ Google Sheet sang JSON. Muốn đổi ngược JSON thành bảng (JSON to table), hãy dùng công cụ JSON to CSV trên website rồi mở file CSV bằng Google Sheets (Tệp, Nhập) hoặc dán nội dung vào sheet.
Có cần Google Sheets API key không?
Không. Công cụ dùng bản CSV mà Google cho tải với mọi bảng tính công khai. Nếu bạn cần ghi dữ liệu vào bảng tính, đọc bảng tính riêng tư hay đọc định dạng ô, khi đó mới cần Google Sheets API.
Số trong JSON bị thành chuỗi, tại sao?
Google xuất CSV theo giá trị đang hiển thị, nên số có dấu phân cách hàng nghìn, ký hiệu tiền tệ hay phần trăm không còn là số thuần và được giữ là chuỗi. Hãy đổi định dạng cột trên Google Sheets về số không phân cách, hoặc tắt đoán kiểu rồi tự xử lý trong code.
Vì sao số điện thoại 0901... vẫn là chuỗi?
Công cụ cố ý giữ chuỗi có số 0 đầu, vì nếu đổi thành số sẽ mất số 0 và sai số điện thoại, mã bưu chính, mã nhân viên. Số nguyên quá lớn (trên 2^53) cũng giữ là chuỗi để không bị sai chữ số cuối.
Mảng object và object theo khóa khác nhau thế nào?
Mảng object giữ thứ tự dòng và cho phép giá trị trùng, hợp để hiển thị danh sách. Object theo khóa dùng một cột làm tên khóa để tra nhanh theo mã, nhưng mã phải duy nhất; dòng trùng mã bị bỏ, chỉ giữ dòng đầu và được liệt kê trong thông báo.
Có dùng link CSV trực tiếp trong code được không?
Được. Công cụ hiện link CSV export của sheet đang chọn; code chạy trên trình duyệt hoặc máy chủ đều có thể gọi link này để lấy dữ liệu mới nhất rồi tự đổi sang JSON. Lưu ý Google có thể giới hạn khi gọi quá nhiều, nên với website có nhiều lượt xem hãy lưu đệm kết quả.
Dữ liệu có đi qua máy chủ của trang này không?
Không. Trình duyệt của bạn gọi thẳng tới docs.google.com và chuyển đổi tại chỗ. Ở chế độ Dán CSV, dữ liệu không rời khỏi máy.
Công thức trong ô có được xuất ra không?
Không, CSV chỉ có kết quả của công thức như đang hiển thị trong ô. Ô định dạng ngày cũng ra theo dạng đang hiển thị, vì vậy nên đặt ngày theo dạng năm-tháng-ngày nếu code cần đọc lại.
Ô trống nên để null hay bỏ khóa?
Ghi null giữ đủ khóa ở mọi object, tiện khi cần cấu trúc đồng đều hoặc nạp vào cơ sở dữ liệu. Bỏ khóa cho JSON gọn hơn, hợp khi code kiểm tra bằng toán tử ?? hoặc giá trị mặc định. Chuỗi rỗng hợp khi giao diện hiển thị trực tiếp giá trị.
Có tạo JSON lồng nhau được không?
Được một mức cơ bản: bật tùy chọn object lồng và đặt tiêu đề có dấu chấm như diachi.tinh. Công cụ không tạo mảng lồng từ nhiều dòng; muốn gom nhiều dòng thành mảng con, bạn cần xử lý thêm trong code.
Bảng tính lớn có chuyển được không?
Được, giới hạn chủ yếu ở bộ nhớ trình duyệt và tốc độ Google xuất CSV. Bảng vài chục nghìn dòng thường vẫn chạy được trên máy tính; phần xem trước JSON bị cắt bớt khi quá dài nhưng nút sao chép và file tải về luôn đủ.
Link Xuất bản lên web có dùng được không?
Không. Link dạng /d/e/2PACX-... của chức năng Xuất bản lên web không chứa ID bảng tính thông thường nên công cụ không nhận. Hãy dùng link chia sẻ ở nút Chia sẻ, có dạng docs.google.com/spreadsheets/d/<ID>/edit.
Từ khóa liên quan
- export google sheet to json
- n8n google sheet to json
- google sheet to json
- google sheets to json
- convert google sheet to json
- google sheet json api
- google sheets as json api
- chuyển google sheet sang json
- lấy dữ liệu google sheet bằng javascript
- google sheet csv export url
- google sheets export csv link
- csv to json
- csv sang json
- google sheet làm database
- đọc google sheet không cần api key
- google sheets gid
- fetch google sheet data
- google sheet to json online
- spreadsheet to json
- excel to json
- chuyển bảng tính sang json
- google sheet public json
- google sheet to json không cần api key