Cách định dạng và kiểm tra JSON: Hướng dẫn thực hành
7 tháng 5, 2026
Ai đó dán cho bạn một tệp cấu hình, phản hồi API hoặc một mục nhật ký, và tất cả đều nằm trên một dòng — một bức tường đầy dấu ngoặc nhọn và dấu phẩy mà không có khoảng trống nào. Bạn cần thực sự đọc nó, hoặc tệ hơn, có điều gì đó bị hỏng và bạn cần tìm ra ký tự gây ra lỗi. Việc làm điều đó bằng mắt là chậm và dễ mắc lỗi. Dưới đây là cách bạn có thể biến JSON thành dạng dễ làm việc hơn.
Giới thiệu ngắn về JSON
JSON (JavaScript Object Notation) là định dạng văn bản cho dữ liệu có cấu trúc: các đối tượng được tạo từ các cặp khóa-giá trị, mảng, chuỗi, số, giá trị boolean và null. Đây là cách mặc định các API gửi dữ liệu cho nhau, và nó được sử dụng cho tệp cấu hình, xuất dữ liệu và bất cứ thứ gì cần vừa dễ đọc với con người vừa có thể được máy phân tích. Phần “dễ đọc với con người” chỉ còn đúng khi nó được định dạng tốt — và đó chính là điều đầu tiên bị phá vỡ.
Vì sao JSON trở nên khó đọc
Hầu hết JSON bạn gặp trong thực tế đều được tối giản: mọi khoảng trống, dòng mới và thụt lề không cần thiết đều bị xóa. Máy chủ làm như vậy một cách chủ ý, vì một gói dữ liệu nhỏ hơn sẽ truyền nhanh hơn và tiết kiệm băng thông hơn. Điều này là đúng khi máy đọc dữ liệu. Nhưng lại là một quyết định tồi khi con người cố gắng đọc nó.
Kết quả là một dòng duy nhất dày đặc, nơi các đối tượng và mảng lồng nhau đều chạy vào nhau. Bạn sẽ mất cảm giác về cấu trúc phân cấp — khóa nào thuộc về đối tượng nào, điểm kết thúc của một mảng và điểm bắt đầu của trường tiếp theo ở đâu. “In đẹp” là cách khắc phục: nó lấy cùng dữ liệu đó và xuất lại với thụt lề và dòng mới nhất quán, giúp bạn dễ dàng nhìn thấy cấu trúc lồng nhau và quét qua một cấu trúc lớn mà không bị mất phương hướng.
Các lỗi cú pháp phổ biến
Cú pháp JSON nghiêm ngặt hơn cú pháp đối tượng JavaScript, và đây thường là nơi mọi thứ bị hỏng. Một vài vấn đề xuất hiện thường xuyên:
- Dấu phẩy cuối dòng.
{"a": 1, "b": 2,}là hợp lệ trong một số ngôn ngữ nhưng không hợp lệ trong JSON — dấu phẩy sau giá trị cuối cùng sẽ gây lỗi khi phân tích. - Dấu nháy đơn. Chuỗi và khóa trong JSON yêu cầu sử dụng dấu nháy kép.
{'name': 'value'}trông ổn với con người nhưng không phải là JSON hợp lệ. - Khóa không được trích dẫn.
{name: "value"}cần phải là{"name": "value"}— khóa không được trích dẫn là không được phép. - Dấu ngoặc thiếu hoặc không khớp. Một dấu ngoặc nhọn
{, dấu ngoặc vuông[chưa đóng hoặc một dấu ngoặc thừa, đặc biệt trong dữ liệu lồng nhau sâu, dễ bị bỏ sót bằng mắt và là một trong những lý do phổ biến nhất khiến việc phân tích thất bại. - Bình luận. JSON hoàn toàn không hỗ trợ cú pháp bình luận — các ký tự
//hoặc/* */còn sót lại từ việc sao chép tệp JS sẽ làm hỏng việc phân tích.
Đây chính xác là loại sai sót gần như không thể nhìn thấy trong một khối đã được thu gọn và rõ ràng khi cấu trúc được xác thực và trình bày đúng cách.
Xác thực và định dạng
“Xác thực” có nghĩa là kiểm tra xem văn bản thực sự tuân thủ cú pháp của JSON — mọi chuỗi đều được trích dẫn đúng, mọi dấu ngoặc đều khớp, không có dấu phẩy cuối dòng, không có ký tự lạ. Một trình xác thực sẽ không cho bạn biết liệu dữ liệu của bạn có đúng theo nghĩa kinh doanh hay không, nhưng nó sẽ cho bạn biết chắc chắn liệu nó có thể được phân tích hay không, và thường sẽ chỉ ra gần đúng nơi xảy ra vấn đề.
Trong thực tế, quy trình làm việc rất đơn giản: dán JSON vào, để công cụ xác thực, và nếu có lỗi, sửa lỗi tại vị trí được đánh dấu. Khi đã hợp lệ, hãy định dạng lại để cấu trúc dễ đọc — đây cũng là cách tốt để kiểm tra nhanh xem dữ liệu thực sự trông có giống như những gì bạn mong đợi hay không, với các trường được lồng ghép đúng vị trí.
Định dạng JSON của Toolio thực hiện đúng cả hai việc này ngay trong trình duyệt của bạn — văn bản của bạn không được tải lên — nó xác thực và chỉ ra các vấn đề cú pháp, đồng thời định dạng JSON hợp lệ với độ thụt đúng. Nó hoàn toàn miễn phí và không cần cài đặt — hữu ích khi bạn chỉ cần kiểm tra nhanh mà không cần cài đặt plugin trình soạn thảo.
Thu gọn cho môi trường sản xuất
Sau khi bạn chỉnh sửa xong và JSON đã chính xác, phiên bản dễ đọc, thụt lề không phải là thứ bạn thực sự muốn gửi đi. Đối với phản hồi API, tệp cấu hình được đóng gói hoặc bất cứ thứ gì được phục vụ qua mạng, việc thu gọn sẽ loại bỏ khoảng trắng dư thừa, làm nhỏ tệp xuống dạng nhỏ nhất mà vẫn có thể được phân tích giống hệt. Dữ liệu không thay đổi — chỉ định dạng bị loại bỏ. Điều này quan trọng hơn khi kích thước gói dữ liệu tăng lên: một tệp cấu hình hoặc tập dữ liệu lớn với thụt lề đầy đủ có thể lớn hơn đáng kể so với cùng dữ liệu đã được thu gọn, và đó là sự lãng phí truyền tải không mang lại lợi ích gì khi con người không cần đọc trực tiếp nó.
Mẫu quy trình là giữ phiên bản có thể đọc được để chỉnh sửa và gỡ lỗi, và chỉ thu gọn trước khi đưa vào nơi nó được sử dụng — một bản dựng, một cấu hình được triển khai, một phản hồi từ API.
Kết luận
Việc định dạng và kiểm tra tính hợp lệ của JSON không quá phức tạp, nhưng việc làm điều đó bằng mắt khi nhìn vào chuỗi đã được thu gọn là lãng phí thời gian và dễ bỏ sót dấu phẩy thừa hoặc dấu ngoặc không đóng. Dán nó vào, để một công cụ kiểm tra tìm ra vấn đề thực sự, in đẹp nó khi bạn đang làm việc với nó, và thu gọn lại trước khi nó được phát hành. Đó thực sự là toàn bộ quy trình làm việc.
Muốn biết khi nào game tiếp theo có thể chơi được? Nhận tin ra mắt →