Chuyển đến nội dung

{ } · 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.

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.

Lỗi đầu tiên tìm thấy trong một tài liệu bị hỏng
Tài liệuMã lý doDòng:cột
{"a": 1,}trailing_comma1:8
{'a': 1}single_quotes1:2
[1, 2unexpected_end1:6
{"a": 01}bad_number1:8
{"a": "x\q"}bad_escape1:9
{"a": 1 "b": 2}missing_comma1:9
Các số mà JSON.parse làm tròn
Số như đã viếtGiá trị JSON.parse trả về
1234567890123456789012345678901234567000
90071992547409939007199254740992
1.00000000000000011
1E400Infinity

Cách định dạng JSON

1

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.

2

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ã.

3

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.