Tiếng Việt
Cách dùng công cụ định dạng JSON
Công cụ định dạng JSON này kiểm tra JSON của bạn và trình bày lại cho dễ đọc ngay khi bạn dán vào, giúp bạn đọc phản hồi API, sửa file cấu hình hay dọn dẹp dữ liệu thử nghiệm mà không cần cài đặt gì.
- Dán JSON vào ô nhập, hoặc bấm Tải ví dụ để dùng thử.
- Chọn kiểu thụt lề: 2 dấu cách (phổ biến trong dự án JavaScript), 4 dấu cách (phổ biến trong Python và Java) hoặc Tab.
- Chọn Định dạng để có kết quả dễ đọc, hoặc Thu gọn để có đoạn văn bản ngắn nhất có thể.
- Bấm Sao chép, hoặc Tải .json để lưu kết quả thành file.
Nếu JSON bị lỗi, ô kết quả sẽ được thay bằng thông báo lỗi kèm số dòng, số cột và một đoạn trích ngắn có dấu mũ (^) chỉ đúng vị trí lỗi.
Các lỗi JSON thường gặp và cách sửa
JSON trông giống JavaScript nhưng quy tắc chặt chẽ hơn nhiều. Những lỗi sau gây ra phần lớn thông báo "JSON không hợp lệ":
| Sai | Đúng | Lý do |
|---|---|---|
| {'name': 'Ana'} | {"name": "Ana"} | Chuỗi và khóa phải dùng dấu ngoặc kép. |
| {name: "Ana"} | {"name": "Ana"} | Khóa phải nằm trong dấu ngoặc kép. |
| [1, 2, 3,] | [1, 2, 3] | Không có dấu phẩy sau phần tử cuối cùng. |
| {"a": 1 "b": 2} | {"a": 1, "b": 2} | Các phần tử được ngăn cách bằng dấu phẩy. |
| {"n": 007} | {"n": 7} | Số không được có số 0 ở đầu. |
| {"ok": True} | {"ok": true} | true, false và null viết thường. |
| // comment | (xóa đi) | Chú thích không thuộc cú pháp JSON. |
Khi lỗi chỉ vào một dòng, lỗi thật thường nằm ngay trước đó. Chẳng hạn, thiếu dấu phẩy chỉ bị phát hiện khi trình phân tích đọc đến giá trị tiếp theo.
Công cụ định dạng hoạt động như thế nào
Công cụ đọc văn bản của bạn từng ký tự một theo tiêu chuẩn JSON (RFC 8259). Trong lúc đọc, nó dựng kết quả đã định dạng và dừng lại ở quy tắc đầu tiên bị vi phạm. Vì không bao giờ chuyển giá trị sang số của JavaScript, các số rất lớn như ID 64-bit hay số thập phân dài được giữ nguyên đúng như bạn viết, và các chuỗi thoát như \u00e9 cũng được giữ nguyên.
Các số liệu bên dưới kết quả cho biết kích thước kết quả, số khóa trong tất cả các đối tượng và cấp lồng nhau sâu nhất. Lồng nhau sâu không thành vấn đề với máy, nhưng có thể là dấu hiệu cấu trúc đang phức tạp hơn mức cần thiết.
Định dạng hay thu gọn?
- Định dạng khi con người cần đọc dữ liệu: gỡ lỗi, review code, viết tài liệu, file cấu hình lưu trong hệ thống quản lý phiên bản.
- Thu gọn khi chỉ máy đọc: nội dung request, giá trị lưu trong cơ sở dữ liệu hoặc biến môi trường, hay file gửi tới trình duyệt.
Đây là cùng một đối tượng ở cả hai kiểu:
{
"id": 7,
"tags": [
"a",
"b"
]
}
Trên web, nén gzip hoặc Brotli vốn đã thu nhỏ khoảng trắng rất tốt, nên việc thu gọn chủ yếu có ý nghĩa với giới hạn lưu trữ và kích thước request hơn là tốc độ tải.
Quyền riêng tư và giới hạn
JSON của bạn chỉ được xử lý trong tab trình duyệt; không có gì được tải lên hay ghi lại. File vài megabyte vẫn chạy tốt, dù dữ liệu rất lớn sẽ mất một lúc để định dạng trên điện thoại chậm. Dù vậy, khi không cần thiết, hãy tránh dán mật khẩu đang dùng hoặc khóa bí mật vào bất kỳ trang web nào, kể cả trang này.
Câu hỏi thường gặp
Làm sao định dạng JSON online?
Dán JSON vào ô nhập. JSON được kiểm tra và trình bày lại ngay với thụt lề 2 dấu cách; bạn có thể chuyển sang 4 dấu cách hoặc tab nếu muốn, rồi sao chép kết quả hoặc tải về thành file .json.
Vì sao JSON của tôi không hợp lệ?
Nguyên nhân phổ biến nhất là dùng dấu nháy đơn thay cho ngoặc kép, dấu phẩy thừa sau phần tử cuối, thiếu dấu phẩy giữa các phần tử, có chú thích và khóa không nằm trong ngoặc kép. Thông báo lỗi cho biết dòng và cột của lỗi đầu tiên.
Thu gọn JSON (minify) nghĩa là gì?
Thu gọn là xóa mọi dấu cách và dấu xuống dòng không nằm trong chuỗi. Dữ liệu giữ nguyên nhưng file nhỏ hơn, hữu ích cho API, giá trị cấu hình và lưu trữ.
JSON có cho phép chú thích hoặc dấu phẩy thừa ở cuối không?
Không. JSON chuẩn (RFC 8259) không cho phép cả hai. Một số công cụ chấp nhận JSONC hoặc JSON5, vốn cho phép, nhưng trình phân tích nghiêm ngặt như trong trình duyệt và hầu hết API sẽ từ chối.
JSON của tôi có bị gửi lên máy chủ không?
Không. Việc phân tích và định dạng diễn ra hoàn toàn trong trình duyệt bằng JavaScript. Dữ liệu không bao giờ rời khỏi thiết bị của bạn, nên an toàn với khóa API hay dữ liệu khách hàng, dù bạn vẫn nên tránh chia sẻ thông tin bí mật.