Cách Sử Dụng
- Dán JSON của bạn vào ô nhập bên trái (hoặc nhấn "Load Example" để thử).
- Chọn thu lề 2 khoảng trắng hoặc 4 khoảng trắng.
- Nhấn "Format" để làm đẹp, hoặc "Minify" để nén thành một dòng duy nhất.
- Nếu JSON không hợp lệ, đọc thông báo lỗi bên dưới các ô để tìm vấn đề.
- Nhấn "Copy" để sao chép kết quả vào clipboard.
Ví dụ
Đầu vào
{"name":"CodeKitHub","tools":["json","base64"],"free":true}Đầu ra
{
"name": "CodeKitHub",
"tools": [
"json",
"base64"
],
"free": true
}Cùng một dữ liệu, được định dạng với thu lề 2 khoảng trắng. Minify làm điều ngược lại: loại bỏ mọi khoảng trắng.
Công Cụ Này Là Gì?
Công cụ định dạng JSON nhận văn bản JSON thô, đã nén hoặc lộn xộn và viết lại với thu lề và xuống dòng nhất quán để dễ đọc hơn. JSON (JavaScript Object Notation) là định dạng dữ liệu phổ biến nhất được các API, file cấu hình và hệ thống log sử dụng, nhưng máy chủ thường gửi nó dưới dạng một dòng dài khó đọc để tiết kiệm băng thông.
Công cụ này cũng hoạt động như một trình kiểm tra JSON hợp lệ: nó phân tích đầu vào của bạn theo đúng quy tắc nghiêm ngặt mà trình duyệt sử dụng, nên nếu JSON của bạn thiếu dấu phẩy, có key không đặt trong dấu nháy hay dấu phẩy thừa cuối cùng, bạn sẽ thấy chính xác thông báo lỗi thay vì thất bại âm thầm.
JSON được định nghĩa chính thức bởi hai tiêu chuẩn song hành, RFC 8259 và ECMA-404 — và đặc tả này cố tình nghiêm ngặt hơn cả JavaScript, đó là lý do một đoạn mã chạy được như JS vẫn có thể không qua được kiểm tra JSON nghiêm ngặt ở đây.
Mẹo thực tế
- Đang gỡ lỗi một API? Dán phản hồi thô trước, định dạng sau — trình kiểm tra sẽ chỉ ra chính xác dòng và cột của vấn đề cú pháp, tốt hơn nhiều so với nhìn chằm chằm vào một khối một dòng.
- Dùng thu lề 2 khoảng trắng để đọc trên màn hình và nén JSON trước khi dán vào một URL, biến môi trường hoặc tin nhắn chat — khoảng trắng ở đó chỉ tốn dung lượng.
- Comment kiểu JSON5 và dấu phẩy thừa cuối cùng là hai lý do phổ biến nhất khiến config viết tay "trông có vẻ ổn" nhưng lại thất bại khi kiểm tra: JSON nghiêm ngặt không cho phép cả hai.
- Với file rất lớn (log, dữ liệu xuất từ database), chỉ định dạng phần bạn cần quan tâm — trình soạn thảo của bạn vẫn phản hồi nhanh và cấu trúc dễ theo dõi hơn.
Ứng dụng trong quy trình làm việc thực tế
Quy trình phổ biến nhất chúng tôi thấy: một API trả về JSON được bọc Base64 hoặc đã nén bên trong một token hay payload webhook. Giải mã Base64 trước, định dạng JSON sau, và so sánh hai phản hồi khi có gì đó thay đổi giữa các môi trường. Mỗi bước đều có công cụ riêng ở đây, và dữ liệu của bạn không bao giờ rời khỏi trình duyệt ở bất kỳ bước nào.
Lập trình viên frontend dùng chiều nén cũng thường xuyên như định dạng: đang phát hành một file JSON tĩnh lớn? Nén nó thường tiết kiệm 20–30% dung lượng ngay cả trước khi gzip bắt đầu hoạt động.
JSON trong các ứng dụng và dịch vụ Việt Nam
Nhiều lập trình viên Việt Nam gặp JSON lộn xộn nhiều nhất khi tích hợp cổng thanh toán hoặc dịch vụ định danh trong nước. Phản hồi từ API Momo, ZaloPay hay VNPay thường trả về một dòng JSON nén kèm chữ ký (signature) và mã giao dịch — dán vào đây trước khi debug giúp bạn nhìn rõ trường nào chứa mã lỗi thực sự thay vì đoán mò giữa hàng trăm ký tự.
Khi làm việc với dữ liệu liên quan đến VNeID hoặc hồ sơ nộp trực tuyến (dịch vụ công), payload JSON thường lồng nhiều cấp (thông tin cá nhân, giấy tờ, lịch sử xác thực) và hay bị lỗi do key tiếng Việt có dấu bị escape thành \u kỳ lạ — công cụ vẫn hiển thị đúng bản format, giúp bạn xác nhận ký tự có dấu (ă, ơ, ư) được mã hóa đúng chuẩn UTF-8 trước khi gửi lên hệ thống.
Các trường hợp sử dụng phổ biến
- Đọc một phản hồi API đã nén được trả về dưới dạng một dòng khó đọc, để hiểu cấu trúc của nó khi gỡ lỗi.
- Kiểm tra tính hợp lệ của một file cấu hình (như package.json hoặc một file settings dạng JSON) mà một ứng dụng lại đọc không đúng một cách khó hiểu.
- Chia sẻ một đoạn JSON dễ đọc, đã định dạng trong báo cáo lỗi, code review hoặc tài liệu.
- Giảm một payload JSON xuống dạng nhỏ nhất trước khi nhúng vào một tham số URL hoặc lưu vào một cột database có giới hạn dung lượng.
Tại Sao Nên Dùng?
Một webhook Momo hoặc ZaloPay báo lỗi thanh toán nhưng payload trả về chỉ là một dòng JSON dài dằng dặc trong log — dán vào đây để thấy ngay trường "resultCode" hay "message" nào đang gây lỗi.
Build Next.js của bạn báo "Unexpected token in JSON at position 342" mà không nói rõ ở đâu — dán nội dung file .json bị lỗi vào đây, công cụ chỉ thẳng dòng và cột.
Bạn sắp gửi cấu hình app lên một server ở xa qua đường truyền 4G chậm — minify trước để giảm dung lượng payload trước khi nó rời khỏi máy.
JSON bạn đang debug chứa số CCCD, số điện thoại khách hàng hoặc access token — mọi thứ xử lý ngay trên trình duyệt, không có gì được gửi lên server thứ ba chỉ để đọc.
Đang review pull request của đồng nghiệp có kèm file fixture JSON bị nén thành một dòng — format lại trước để diff trên GitHub thực sự có ý nghĩa.
Không có tường đăng nhập nào cả — mở trên điện thoại giữa lúc trực on-call lúc nửa đêm, công cụ vẫn hoạt động y hệt như trên laptop.
Câu Hỏi Thường Gặp
Dữ liệu JSON của tôi có bị tải lên máy chủ không?
Không. Công cụ này chạy hoàn toàn trên trình duyệt của bạn bằng JavaScript. JSON của bạn không bao giờ rời khỏi thiết bị, nên an toàn khi dùng với dữ liệu nhạy cảm hoặc nội bộ.
Vì sao JSON của tôi không hợp lệ?
Các nguyên nhân phổ biến nhất là: thiếu hoặc thừa dấu phẩy, key không đặt trong dấu nháy kép, dùng dấu nháy đơn thay vì dấu nháy kép, dấu phẩy thừa sau phần tử cuối cùng, và comment (JSON không cho phép comment). Thông báo lỗi bên dưới ô nhập sẽ cho bạn biết trình phân tích tìm thấy gì.
Sự khác biệt giữa Format và Minify là gì?
Format thêm thu lề và xuống dòng để JSON dễ đọc với con người. Minify loại bỏ mọi khoảng trắng không cần thiết để JSON nhỏ nhất có thể — hữu ích trước khi truyền đi hoặc nhúng vào nơi khác.
Có giới hạn dung lượng không?
Công cụ không áp đặt giới hạn cứng nào. File rất lớn (hàng chục megabyte) có thể chạy chậm tùy vào thiết bị của bạn, vì toàn bộ quá trình xử lý diễn ra cục bộ trên trình duyệt.
Công cụ này có tự động sửa JSON bị hỏng không?
Không — công cụ chỉ cho bạn biết chính xác JSON bị hỏng ở đâu để bạn tự sửa, chứ không đoán hay thay đổi dữ liệu của bạn. Đây là chủ đích: âm thầm "sửa" dữ liệu có thể che giấu lỗi thực sự.
Công cụ có hỗ trợ JSON5 hay JSONC (cho phép comment, dấu phẩy thừa, key không dấu nháy) không?
Không, và đây là chủ đích — công cụ kiểm tra theo chuẩn JSON nghiêm ngặt RFC 8259, đúng thứ mà API và JSON.parse() của bạn thực sự yêu cầu. Nếu bạn cần định dạng file JSONC như tsconfig.json, hãy xóa comment trước, nếu không trình phân tích sẽ báo đó là lỗi.
Công cụ này khác gì so với việc chạy JSON.stringify trong console trình duyệt?
JSON.stringify(JSON.parse(x), null, 2) cho kết quả định dạng tương tự, nhưng bạn cần mở console và nó chỉ báo một lỗi chung chung không rõ ràng khi JSON không hợp lệ, thay vì chỉ thẳng dòng và cột bị lỗi như công cụ này.
Có giới hạn về độ sâu lồng nhau của JSON không, ví dụ với phản hồi GraphQL nhiều tầng?
Không có giới hạn độ sâu nhân tạo nào — chỉ bị giới hạn thực tế bởi bộ nhớ trình duyệt và khả năng cuộn trang của bạn. Cấu trúc lồng sâu chính là nơi việc định dạng giúp ích nhiều nhất, vì bản một dòng gần như không thể đọc được sau 3-4 tầng.
Công cụ có hoạt động offline hoặc trên trình duyệt không có mạng không?
Có. Sau khi trang đã tải xong, toàn bộ logic phân tích và định dạng chạy cục bộ bằng JavaScript — bạn có thể ngắt mạng và vẫn tiếp tục định dạng JSON bình thường.
Công cụ có hoạt động trên các trình duyệt cũ hoặc trình duyệt mặc định của điện thoại Android đời cũ không?
Công cụ dùng các API JavaScript tiêu chuẩn (JSON.parse, Clipboard API) đã được hỗ trợ rộng rãi từ nhiều năm nay trên Chrome, Safari, Firefox và Edge, kể cả trên các trình duyệt Android mặc định như Samsung Internet. Chỉ những trình duyệt rất cũ (trước 2017) mới có thể gặp vấn đề với nút sao chép.