Định dạng JSON
Làm đẹp, thu gọn và kiểm tra JSON — báo đúng dòng và cột khi có lỗi.
Dán JSON vào ô bên trên để bắt đầu.
Cách tính
JSON là định dạng dữ liệu dạng văn bản, và điều đó có nghĩa là khoảng trắng trong nó hoàn toàn không mang ý nghĩa. Làm đẹp hay thu gọn một tài liệu JSON không hề thay đổi dữ liệu — chỉ thay đổi cách nó xuống dòng và thụt lề. Vì thế bạn có thể thu gọn thoải mái trước khi gửi đi và làm đẹp lại khi cần đọc, mà không sợ mất mát gì.
Phần thực sự có ích của trang này là báo lỗi. Khi JSON.parse thất bại, trình duyệt ném ra một câu như "Unexpected token o, ...\"b\": oops\n}\" is not valid JSON" — trong đó không có số dòng nào cả. Với một tài liệu 400 dòng, câu đó gần như vô dụng. Trang này lần ra vị trí thật của ký tự gây lỗi rồi quy đổi ra dòng và cột.
Cách lần ra vị trí phụ thuộc vào dạng thông báo. Một số lỗi có sẵn "at position N" trong câu thông báo và việc quy đổi là đơn giản. Với dạng "Unexpected token" — dạng phổ biến nhất — trình duyệt chỉ đưa ra một đoạn trích quanh chỗ lỗi, nên trang này tìm đoạn trích đó trong tài liệu của bạn rồi đối chiếu lại ký tự đã được nêu tên. Nếu không khớp, trang không đoán bừa mà báo là không xác định được vị trí: một số dòng sai còn tệ hơn là không có số dòng.
Tuỳ chọn sắp xếp khoá theo bảng chữ cái có ích khi bạn cần so sánh hai phiên bản của cùng một tài liệu: hai tệp giống nhau về nội dung nhưng khác thứ tự khoá sẽ cho ra một bản diff toàn màu đỏ. Thứ tự phần tử trong mảng thì được giữ nguyên, vì trong mảng thứ tự chính là dữ liệu.
Công thức
JSON.stringify(giá trị, null, số dấu cách)
Tham số thứ hai là hàm lọc, ở đây để null vì không lọc gì. Tham số thứ ba bằng 0 cho ra chuỗi thu gọn — đó là lý do "thụt lề 0" và "thu gọn" cho cùng một kết quả.
Ví dụ
Một tài liệu thiếu dấu nháy quanh giá trị:
- Dòng 1
- {
- Dòng 2
- "a": 1,
- Dòng 3
- "b": oops
- Trình duyệt báo
- Unexpected token 'o' …
- Trang này báo
- Lỗi ở dòng 3, cột 8
Cùng một lỗi, nhưng một câu bắt bạn dò cả tài liệu còn câu kia chỉ thẳng vào chỗ cần sửa.
Câu hỏi thường gặp
Làm đẹp JSON có làm thay đổi dữ liệu không?
Không. Khoảng trắng ngoài chuỗi không mang ý nghĩa trong JSON, nên làm đẹp và thu gọn cho ra hai cách viết của cùng một dữ liệu. Khoảng trắng bên trong một chuỗi thì được giữ nguyên.
Vì sao JSON của tôi báo lỗi dù trông vẫn đúng?
Ba nguyên nhân thường gặp nhất: dấu phẩy thừa trước dấu đóng ngoặc, dùng dấu nháy đơn thay vì nháy kép, và có chú thích. JSON không cho phép cả ba, dù JavaScript thì có.
Thu gọn tiết kiệm được bao nhiêu?
Thường 15–30% với tài liệu đã được thụt lề, tuỳ mức độ lồng nhau. Con số cụ thể cho tài liệu của bạn hiển thị ngay dưới kết quả.
Vì sao có lỗi lại không hiện số dòng?
Vì với một số dạng lỗi, trình duyệt không đưa ra đủ thông tin để xác định vị trí một cách chắc chắn. Trong trường hợp đó trang này chọn không hiển thị số dòng, thay vì đưa ra một con số có thể sai.
Sắp xếp khoá có làm hỏng dữ liệu không?
Không. Thứ tự khoá trong một đối tượng JSON không mang ý nghĩa theo chuẩn, nên sắp xếp lại vẫn là cùng một dữ liệu. Thứ tự phần tử mảng thì có ý nghĩa và được giữ nguyên.
Dữ liệu tôi dán vào có được gửi lên máy chủ không?
Không. Toàn bộ việc phân tích và định dạng chạy trong trình duyệt của bạn. Bạn có thể dán dữ liệu nội bộ vào đây mà không lo nó rời khỏi máy.