{ } · 2 / 4 / tab · minify
Trình định dạng và kiểm tra JSON
Trình định dạng JSON thêm thụt lề cho JSON gọn: một tài liệu 60 byte tăng lên 86 byte với 2 dấu cách và 102 byte với 4. Dán JSON để nhận văn bản đã định dạng hoặc thu gọn, hoặc dòng và cột của lỗi đầu tiên.
- {"a": 1,} → 1:8
- 12345678901234567890 → 12345678901234567000
- 60 B → 86 B (2) → 102 B (4)
Mọi thứ chạy ngay trong thẻ này và không có gì được tải lên. Trình phân tích theo RFC 8259, nên chú thích, dấu nháy đơn, dấu phẩy thừa ở cuối và khóa không đặt trong dấu nháy đều bị báo là lỗi.
Scanned by NortonTM Safe Web
Tóm tắt nhanh
- Giá
- Không mất phí
- Tài khoản
- Không cần
- Chuẩn
- RFC 8259 (JSON)
- Giới hạn
- 5 MB đầu vào, 512 cấp lồng nhau
- Kết quả
- 2 dấu cách, 4 dấu cách, tab hoặc thu gọn, có thể sắp xếp khóa
- Tải lên
- Không — văn bản ở lại trong thẻ trình duyệt của bạn
Lỗi JSON và độ chính xác của số
Các con số này lấy từ trình phân tích mà trang này dùng. Dòng và cột được đếm từ 1.
| Tài liệu | Mã lý do | Dòng:cột |
|---|---|---|
| {"a": 1,} | trailing_comma | 1:8 |
| {'a': 1} | single_quotes | 1:2 |
| [1, 2 | unexpected_end | 1:6 |
| {"a": 01} | bad_number | 1:8 |
| {"a": "x\q"} | bad_escape | 1:9 |
| {"a": 1 "b": 2} | missing_comma | 1:9 |
| Số như đã viết | Giá trị JSON.parse trả về |
|---|---|
| 12345678901234567890 | 12345678901234567000 |
| 9007199254740993 | 9007199254740992 |
| 1.0000000000000001 | 1 |
| 1E400 | Infinity |
Cách định dạng JSON
Dán JSON của bạn
Nhập hoặc dán một tài liệu JSON tối đa 5 MB vào ô nhập. Đã có sẵn một mẫu để bạn xem kết quả trước.
Chọn kiểu kết quả
Chọn 2 dấu cách, 4 dấu cách, một tab hoặc dạng thu gọn. Đánh dấu ô chọn để sắp xếp khóa của mọi đối tượng theo thứ tự đơn vị mã.
Sao chép hoặc sửa lỗi
Sao chép hoặc tải kết quả xuống. Nếu JSON bị lỗi, thông báo nêu dòng, cột và lý do, còn dấu mũ chỉ đúng chỗ trong dòng bị lỗi.
Trình định dạng JSON hoạt động thế nào
Trang đọc văn bản của bạn bằng trình phân tích riêng cho ngữ pháp JSON trong RFC 8259, rồi ghi lại với kiểu thụt lề bạn đã chọn. Vì trình phân tích là một phần của trang, mọi trình duyệt đều hiện cùng một thông báo cho cùng một lỗi. JSON.parse có sẵn diễn đạt lỗi khác nhau trong Chrome, Firefox và Safari, và không phải thông báo nào cũng chỉ ra dòng và cột.
Số và chuỗi thoát được sao chép đúng như bạn gõ. JSON.parse biến 12345678901234567890 thành 12345678901234567000, vì số trong JavaScript là số thực 64 bit với khoảng 15 đến 17 chữ số có nghĩa. Trang này giữ đủ 20 chữ số và báo khi một số sẽ bị làm tròn. RFC 8259 nói tên trong đối tượng nên là duy nhất, nên khóa trùng được giữ lại và báo. Giới hạn là 5 MB đầu vào và 512 cấp lồng nhau.
Câu hỏi về trình định dạng JSON
Làm sao để định dạng JSON trực tuyến?
Dán JSON vào ô nhập. Văn bản đã định dạng hiện ra ngay, với 2 dấu cách, 4 dấu cách hoặc một tab cho mỗi cấp. Mẫu 60 byte thành 86 byte với 2 dấu cách và 102 byte với 4 dấu cách.
"Unexpected token" nghĩa là gì, và lỗi của tôi ở đâu?
Nghĩa là trình phân tích gặp một ký tự mà ngữ pháp JSON không cho phép ở vị trí đó. Trang này nêu lý do, dòng và cột. Với {"a": 1,} nó báo trailing_comma ở dòng 1, cột 8.
Vì sao dấu phẩy thừa ở cuối là lỗi trong JSON?
Ngữ pháp trong RFC 8259 yêu cầu có một giá trị sau mỗi dấu phẩy, nên [1, 2,] và {"a": 1,} đều không hợp lệ. Đối tượng literal của JavaScript chấp nhận dấu phẩy thừa, nhưng JSON thì không. Hãy xóa dấu phẩy cuối.
JSON có thể chứa chú thích hoặc dấu nháy đơn không?
Không. RFC 8259 không có chú thích, và chuỗi cùng khóa chỉ dùng dấu nháy kép. Các định dạng như JSON5 và JSONC cho phép cả hai, nhưng đó là các định dạng khác, và trang này báo chúng là lỗi.
Trình định dạng có thay đổi các con số của tôi không?
Không. Số và chuỗi thoát được ghi lại đúng như đã gõ. JSON.parse sẽ làm tròn 12345678901234567890 thành 12345678901234567000, nhưng trang này giữ mọi chữ số, nên định dạng không làm mất gì.
JSON của tôi có bị tải lên đâu không?
Không. Trang chạy trong thẻ trình duyệt của bạn và không gửi gì tới máy chủ nào. Sau khi đã tải xong, trang cũng chạy được khi không có mạng. Giới hạn đầu vào là 5 MB.