Định dạng & kiểm tra JSON online (JSON Formatter)
Định dạng, làm đẹp và kiểm tra cú pháp JSON ngay trên trình duyệt. Báo lỗi kèm số dòng, số cột cụ thể, hỗ trợ rút gọn (minify) và sao chép kết quả, không gửi dữ liệu lên máy chủ.
Dữ liệu cập nhật ngày 25/08/2026
JSON là gì
JSON (JavaScript Object Notation) là định dạng trao đổi dữ liệu dạng văn bản, dùng phổ biến trong response API, file cấu hình (package.json, tsconfig.json...) và lưu trữ dữ liệu có cấu trúc. Khác với object literal của JavaScript, JSON có quy tắc chặt: chuỗi và tên thuộc tính luôn nằm trong dấu nháy kép, không được để dấu phẩy thừa, và không hỗ trợ comment hay hàm.
Vì sao cần định dạng lại JSON
Dữ liệu JSON trả về từ API hoặc log hệ thống thường bị nén thành một dòng dài không có khoảng trắng, rất khó đọc bằng mắt thường khi cần debug. Định dạng lại (thêm thụt lề, xuống dòng theo từng cấp) giúp nhìn ra ngay cấu trúc lồng nhau của dữ liệu mà không cần đếm dấu ngoặc bằng tay.
Các lỗi cú pháp JSON thường gặp
Phổ biến nhất là dấu phẩy thừa ở phần tử cuối cùng của object hoặc mảng ({"a":1,}), dùng nhầm dấu nháy đơn thay vì nháy kép, và quên đặt dấu ngoặc kép quanh tên thuộc tính - ba lỗi này chiếm phần lớn các trường hợp "JSON không hợp lệ" khi copy dữ liệu từ code JavaScript sang. Công cụ báo cụ thể số dòng và số cột gây lỗi (trên các trình duyệt dựa trên Chromium) để không phải dò từng ký tự.
Rút gọn (minify) để làm gì
Rút gọn bỏ toàn bộ khoảng trắng và ký tự xuống dòng không cần thiết, giữ nguyên dữ liệu nhưng giảm đáng kể dung lượng chuỗi - hữu ích khi nhúng JSON vào file cấu hình production, gửi qua API có giới hạn kích thước, hoặc đơn giản là muốn tiết kiệm băng thông khi truyền dữ liệu.
Câu hỏi thường gặp
Nội dung JSON tôi dán vào có được gửi lên máy chủ nào không?
Không. Toàn bộ việc phân tích, định dạng và rút gọn JSON chạy ngay trên trình duyệt bằng JavaScript (hàm JSON.parse/JSON.stringify có sẵn), không có request nào gửi nội dung đi đâu cả. An toàn để dán cả dữ liệu nhạy cảm như payload API nội bộ hay response chứa thông tin khách hàng.
Vì sao JSON của tôi báo lỗi dù nhìn qua có vẻ đúng?
Ba lỗi phổ biến nhất: (1) dấu phẩy thừa ở phần tử cuối mảng/object - ví dụ {"a":1,} - JSON chuẩn không cho phép; (2) dùng dấu nháy đơn '...' thay vì nháy kép "..." cho chuỗi và tên thuộc tính; (3) tên thuộc tính không có dấu ngoặc kép, ví dụ {a: 1} thay vì {"a": 1} - đây là cú pháp object của JavaScript, không phải JSON hợp lệ. Công cụ báo rõ số dòng, số cột để bạn tìm đúng vị trí cần sửa.
JSON khác gì object literal của JavaScript?
JSON là định dạng dữ liệu độc lập ngôn ngữ, có quy tắc chặt hơn: bắt buộc tên thuộc tính và chuỗi phải để trong dấu nháy kép, không được có dấu phẩy thừa, không hỗ trợ comment, hàm, hay giá trị undefined. Object literal của JavaScript linh hoạt hơn (cho phép nháy đơn, tên thuộc tính không nháy, dấu phẩy thừa...) nên nhiều đoạn "trông giống JSON" copy từ code JS thực ra không phải JSON hợp lệ và sẽ bị công cụ này báo lỗi.
Định dạng (Format) và Rút gọn (Minify) khác nhau thế nào, khi nào dùng cái nào?
Định dạng thêm khoảng trắng, thụt lề và xuống dòng để mắt người dễ đọc - dùng khi cần xem, sửa hoặc debug dữ liệu. Rút gọn bỏ hết khoảng trắng thừa để chuỗi ngắn nhất có thể - dùng khi gửi qua mạng (giảm băng thông) hoặc nhúng vào file cấu hình production. Cả hai đều giữ nguyên dữ liệu, chỉ khác cách trình bày.
Công cụ có kiểm tra được JSON quá lớn không?
Có, giới hạn chủ yếu phụ thuộc bộ nhớ trình duyệt chứ không phải công cụ - vài chục nghìn dòng vẫn xử lý mượt trên máy tính thông thường. Với file cực lớn (hàng trăm MB), trình duyệt có thể phản hồi chậm vì phải giữ toàn bộ nội dung trong bộ nhớ, đây là giới hạn chung của mọi công cụ chạy trên trình duyệt chứ không riêng gì công cụ này.
Vì sao báo lỗi "Unexpected token" mà không chỉ rõ dòng/cột?
Trình duyệt Chrome, Edge và hầu hết trình duyệt dựa trên Chromium đều trả về đủ thông tin để công cụ xác định chính xác dòng và cột gây lỗi. Một số trình duyệt khác (như phiên bản Safari cũ) trả về thông báo lỗi ở định dạng khác khiến công cụ không suy ra được vị trí cụ thể - khi đó công cụ vẫn hiển thị nguyên văn thông báo lỗi gốc để bạn tham khảo, chỉ là không kèm số dòng/cột.
Công cụ liên quan
Mã hóa Base64
MớiChuyển văn bản sang Base64 hoặc giải mã ngược lại ngay trên trình duyệt. Xử lý đúng chữ tiếng Việt có dấu (UTF-8), hỗ trợ định dạng URL-safe, không gửi dữ liệu lên máy chủ nào.
So sánh văn bản
MớiSo sánh hai đoạn văn bản hoặc đoạn code theo từng dòng, làm nổi bật phần thêm và phần xóa như git diff. Xử lý ngay trên trình duyệt, hỗ trợ bỏ qua khoảng trắng và không phân biệt hoa/thường.
Chuyển đổi kiểu chữ
MớiChuyển đổi văn bản hoặc tên biến sang camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case và nhiều kiểu khác cùng lúc. Tự nhận diện từ dù bạn nhập theo kiểu nào.
Tính Subnet/CIDR
MớiTính subnet mask, wildcard mask, địa chỉ mạng, địa chỉ broadcast, dải host khả dụng từ địa chỉ IPv4 kèm tiền tố CIDR hoặc subnet mask. Xử lý ngay trên trình duyệt, không gửi dữ liệu đi đâu.