Định dạng JSON
Pretty print, thu gọn và kiểm tra JSON tức thì.
Chạy ngay trên trình duyệt. Không có gì bạn nhập vào bị gửi đi đâu cả.
- Vị trí lỗi chính xác
- Xem dạng cây thu gọn được
- Không tải gì lên
Cách định dạng JSON
- Dán hoặc tải lên JSON của bạn.
- Chọn pretty print hoặc thu gọn, và độ rộng thụt lề.
- Sao chép hoặc tải kết quả.
Pretty print so với minify
| Pretty print | Minify | |
|---|---|---|
| Khoảng trắng | Thêm thụt lề và ngắt dòng | Xóa hết |
| Dung lượng file | Lớn hơn, dễ đọc hơn | Nhỏ nhất có thể, cùng dữ liệu |
| Phù hợp nhất cho | Chỉnh sửa và debug | API production và lưu trữ |
Các lỗi JSON thường gặp và cách sửa
| Lỗi | Cách sửa |
|---|---|
| Dấu phẩy thừa trước } hoặc ] | Xóa dấu phẩy cuối cùng trong danh sách |
| Dấu ngoặc đơn quanh một chuỗi | Chuyển sang chỉ dùng dấu ngoặc kép |
| Tên thuộc tính không có ngoặc kép | Bọc mọi khóa trong dấu ngoặc kép |
| Chú thích // hoặc /* | Xóa nó đi; JSON không có cú pháp chú thích |
| Thiếu dấu ngoặc đóng | Đếm lại các cặp { } và [ ] khớp nhau |
| Một số như 1. hoặc .5 | Viết 1.0 hoặc 0.5; JSON cần chữ số ở cả hai phía dấu chấm thập phân |
| Ký tự xuống dòng thô bên trong một chuỗi | Escape nó thành \n, vì xuống dòng thật bên trong dấu ngoặc kép không được phép |
Quy tắc cú pháp JSON, theo RFC 8259
- Một số không được có số 0 ở đầu (01 không hợp lệ) hoặc dấu chấm thập phân trơ ở cuối (1. không hợp lệ).
- Mọi khóa phải là chuỗi trong dấu ngoặc kép. Khóa không ngoặc và thuộc tính viết tắt của JavaScript không phải JSON hợp lệ.
- Các literal duy nhất được phép ngoài dấu ngoặc kép là true, false và null, đều viết thường.
- Một chuỗi chỉ được dùng dấu ngoặc kép; dấu ngoặc đơn và dấu backtick là tính năng của JavaScript mà JSON không có.
- Khóa trùng lặp trong một object về mặt ngữ pháp được cho phép, nhưng hầu hết trình phân tích, kể cả công cụ này, chỉ giữ giá trị cuối cùng, nên đừng phụ thuộc vào việc cả hai đều được đọc.
Câu hỏi thường gặp về Định dạng JSON
Vì sao JSON của tôi báo lỗi ở một dòng trông có vẻ ổn?
Trình phân tích báo nơi nó dừng lại, thường là một ký tự sau lỗi thật sự, như thiếu dấu phẩy ở dòng trên. Hãy kiểm tra cả dòng ngay trước dòng được chỉ ra.
Sắp xếp khóa làm gì?
Nó sắp xếp lại khóa của mọi object theo thứ tự bảng chữ cái trước khi in ra, giúp dễ so sánh (diff) hai file JSON hoặc tìm một trường cụ thể hơn.
Tôi có thể định dạng file JSON rất lớn không?
Được, nhưng chế độ xem dạng cây thu gọn chỉ dựng cho đầu vào dưới 300 KB. File lớn hơn vẫn định dạng và thu gọn được, chỉ là không có cây.
Khác biệt giữa minify và pretty print là gì?
Pretty print thêm ngắt dòng và thụt lề để dễ đọc. Minify xóa hết những thứ đó để file nhỏ nhất có thể cho production.
Chuẩn JSON, RFC 8259, thực sự yêu cầu gì?
Nó định nghĩa ngữ pháp chính xác của JSON: object và mảng, chuỗi trong dấu ngoặc kép, số không có số 0 ở đầu, và các literal true, false, null. Bất cứ thứ gì ngoài ngữ pháp đó, như một chú thích hay dấu phẩy thừa, đều là JSON không hợp lệ dù một số trình phân tích vẫn âm thầm chấp nhận.
Tôi có thể định dạng file JSON5 hay JSONC cho phép chú thích không?
Không. Chú thích và dấu phẩy thừa, phổ biến trong file cấu hình JSONC mà một số trình soạn thảo dùng, không phải JSON hợp lệ và sẽ bị báo lỗi ở đây. Hãy bỏ chúng đi trước nếu bạn đang làm việc với một trong các định dạng nới lỏng đó.
Tôi có thể mở rộng mọi node trong chế độ xem cây cùng lúc không?
Được, bấm Mở rộng tất cả. Tài liệu lớn bắt đầu chỉ mở một hoặc hai cấp đầu để giữ tốc độ; Mở rộng tất cả sẽ mở mọi node còn lại khi cần.
Tôi có thể tải kết quả đã định dạng thành một file không?
Được. Nút Tải xuống lưu kết quả hiện tại, dù pretty print hay thu gọn, thành một file .json, đặt tên theo file bạn đã tải lên hoặc "formatted.json" nếu bạn dán văn bản trực tiếp.