Định dạng và kiểm tra JSON

Dán hoặc mở tệp JSON để biết ngay nó có hợp lệ không, rồi định dạng đẹp, thu gọn hay xem dạng cây. JSON không rời khỏi máy của bạn.

Kết quả

                

Chưa có JSON để kiểm tra.

Kiểu gốc
—
Độ sâu
—
Số khoá
—
Số giá trị
—
Dung lượng
—

Cách sử dụng

  1. Dán JSON vào khung "JSON gốc", hoặc bấm "Mở tệp" để mở một tệp .json trên máy. Muốn thử nhanh, bấm "Ví dụ".
  2. Xem thanh trạng thái bên dưới: JSON hợp lệ hay không. Nếu lỗi, bấm "Đến chỗ lỗi" để con trỏ nhảy tới đúng dòng, cột bị lỗi.
  3. Chọn "Làm đẹp" để xuống dòng, thụt lề 2 dấu cách cho dễ đọc, hay "Thu gọn" để có JSON một dòng. Ở khung "Kết quả", chọn xem dạng "Văn bản" hoặc dạng "Cây" (mở, đóng từng nhánh); ô tìm kiếm dùng được ở cả hai.
  4. Bấm "Sao chép" hoặc "Tải xuống" để mang kết quả đi. Bấm "Toàn màn hình" khi cần đọc JSON dài, hoặc "Xem toàn trang" ở khung Kết quả để kết quả phủ kín cửa sổ (tiện khi chia đôi màn hình để đối chiếu với code của bạn); nhấn Esc để thoát.

Cách công cụ đọc và ghi JSON

  • JSON được đọc bằng bộ phân tích JSON có sẵn của trình duyệt (JSON.parse), theo đúng chuẩn JSON. Công cụ không chạy nội dung bạn dán vào và không dùng eval. Tệp bạn mở chỉ được đọc trên máy, không được tải lên đâu cả.
  • JSON chuẩn không cho phép: chú thích (// hoặc /* */), dấu phẩy thừa ở cuối, dấu nháy đơn, khoá không có dấu nháy kép, undefined, NaN, Infinity, số có số 0 đứng đầu như 01.
  • "Làm đẹp" đặt mỗi giá trị trên một dòng, thụt lề 2 dấu cách; "Thu gọn" bỏ mọi khoảng trắng nằm ngoài chuỗi. Thứ tự các khoá được giữ nguyên, nội dung chuỗi không đổi.
  • Công cụ chỉ đổi khoảng trắng: mọi chuỗi và mọi số được giữ nguyên như bạn viết (1.0 vẫn là 1.0, 1e2 vẫn là 1e2). Một khoá xuất hiện hai lần trong cùng một đối tượng được giữ cả hai (JavaScript chỉ đọc giá trị cuối).
  • Số nguyên lớn hơn 9.007.199.254.740.991 (ví dụ một mã số 19 chữ số) không được JavaScript giữ chính xác: công cụ giữ nguyên các chữ số trong kết quả nhưng cảnh báo và liệt kê chúng, vì JavaScript và nhiều công cụ khác sẽ làm tròn khi đọc.
  • Khi JSON lỗi, thanh trạng thái hiện thông báo của trình duyệt (bằng tiếng Anh) kèm dòng và cột nếu trình duyệt cho biết. Safari không cho biết vị trí, nên chỉ có thông báo.
  • Dạng "Cây" hiện mỗi đối tượng là {số khoá} và mỗi mảng là [số phần tử]; nhánh chỉ được dựng khi bạn mở, nên JSON lớn vẫn mở nhanh. "Mở hết" dừng lại sau vài nghìn giá trị để trình duyệt không bị treo. Dạng "Văn bản" tô màu khoá, chuỗi, số và true/false/null (kết quả lớn hơn 512 KB hiện chữ trơn để trang không bị chậm); ô tìm kiếm không phân biệt chữ hoa, chữ thường, đánh dấu tối đa 1.000 chỗ, Enter để tới chỗ tiếp theo, Shift+Enter để quay lại. Ở dạng "Cây", công cụ tìm theo tên khoá và giá trị, rồi tự mở các nhánh để tới chỗ tìm thấy.
  • Ký tự BOM vô hình ở đầu văn bản (một số trình soạn thảo tự thêm vào) được bỏ qua, và công cụ báo cho bạn biết.

Câu hỏi thường gặp

JSON của tôi có bị gửi lên máy chủ không?

Không. Mọi xử lý, kể cả mở tệp và tải xuống, chạy bằng JavaScript ngay trong trình duyệt; JSON không được gửi đi, không được lưu lại ở đâu cả. Dù vậy, đừng dán khoá bí mật hay mật khẩu vào bất kỳ trang web nào khi không cần.

Vì sao JSON của tôi bị báo lỗi dù nó chạy được trong JavaScript?

Đối tượng JavaScript không phải là JSON: JavaScript cho phép nháy đơn, khoá không có nháy, dấu phẩy thừa và chú thích, còn JSON thì không. Bấm "Đến chỗ lỗi" để tới đúng chỗ cần sửa.

Số của tôi có bị thay đổi sau khi định dạng không?

Không: số được giữ nguyên như bạn viết, kể cả số quá lớn. Chỉ chế độ Cây hiện giá trị mà JavaScript đọc được (số quá lớn bị làm tròn). Để chương trình khác đọc đúng, hãy để số đó trong dấu nháy kép như một chuỗi.

Công cụ có sắp xếp lại các khoá không?

Không. Thứ tự khoá được giữ đúng như JSON gốc, vì có những chương trình phụ thuộc vào thứ tự đó.

Có giới hạn kích thước JSON không?

Có, tối đa 1 MB để trình duyệt không bị treo. JSON lớn hơn sẽ không được xử lý, thay vì bị cắt bớt âm thầm.

Vì sao nút "Sao chép" báo không thể sao chép?

Trình duyệt có thể chặn quyền ghi vào bộ nhớ tạm (clipboard). Khi đó kết quả được chọn sẵn: nhấn Ctrl+C (hoặc ⌘+C trên Mac) để sao chép.