tigtools

Trình định dạng JSON

Dán JSON để định dạng dễ đọc hoặc rút gọn. Nếu dữ liệu không hợp lệ, bạn sẽ biết lỗi nằm ở đâu và là lỗi gì. Dữ liệu luôn ở trong trình duyệt.

Chạy ngay trên trình duyệt Không cần đăng ký

Thụt lề

Cách sử dụng

  1. Dán JSON vào ô nhập liệu hoặc nhấn “Thử ví dụ”.
  2. Chọn mức thụt lề (2 dấu cách, 4 dấu cách hoặc tab) và bật sắp xếp khóa theo thứ tự bảng chữ cái nếu muốn.
  3. Xem kết quả đã định dạng ở bên phải. Nhấn Rút gọn để xóa toàn bộ khoảng trắng.
  4. Nếu JSON có lỗi cú pháp, hãy sửa tại dòng và cột được chỉ ra, sau đó sao chép hoặc tải kết quả xuống dưới dạng tệp .json.

Cách hoạt động

Trình định dạng phân tích văn bản bằng bộ phân tích JSON tích hợp sẵn của trình duyệt, sau đó ghi lại với mức thụt lề bạn chọn. Nhờ vậy, kết quả luôn là JSON hợp lệ và có mức thụt lề nhất quán. Lệnh Rút gọn ghi lại cùng dữ liệu nhưng không có khoảng trắng hay xuống dòng, tạo thành dạng nhỏ nhất để gửi qua mạng hoặc lưu trong giá trị cấu hình.

Nếu dữ liệu đầu vào không phải JSON hợp lệ, bộ kiểm tra cú pháp nghiêm ngặt sẽ tìm lỗi đầu tiên và báo dòng, cột kèm giải thích dễ hiểu về các lỗi thường gặp: dấu phẩy thừa ở cuối, dấu nháy đơn, khóa không có dấu nháy, chú thích và các giá trị như NaN hoặc undefined vốn có trong JavaScript nhưng không có trong JSON. Trình duyệt hiển thị lỗi JSON theo những cách khác nhau, nên công cụ tự tính vị trí lỗi thay vì lấy từ thông báo của trình duyệt.

Lưu ý các giới hạn khi định dạng lại. Số được lưu dưới dạng số dấu phẩy động độ chính xác kép, nên số nguyên lớn hơn 9,007,199,254,740,991 (2^53 − 1), chẳng hạn một số ID trong cơ sở dữ liệu, sẽ mất độ chính xác: 9007199254740993 trở thành 9007199254740992. Hãy lưu các ID như vậy dưới dạng chuỗi. Nếu một đối tượng có cùng khóa hai lần, chỉ giá trị cuối cùng được giữ lại. JavaScript luôn xếp các khóa trông như số nguyên ("1", "20") trước các khóa khác, bất kể bạn có sắp xếp hay không. Dữ liệu đầu vào vài megabyte vẫn xử lý được; với dữ liệu trên khoảng 300.000 ký tự, định dạng trực tiếp sẽ tạm dừng và bạn cần nhấn Định dạng để tiếp tục, giúp thao tác nhập liệu luôn mượt mà.

Ví dụ

Đọc phản hồi API

Một API REST trả về một dòng dài như {"user":{"id":7,"tags":["a","b"]}}. Định dạng với 2 dấu cách sẽ đưa mỗi khóa lên một dòng riêng và thụt lề mảng tags, giúp bạn dễ dàng nắm bắt cấu trúc.

So sánh hai tệp cấu hình

Hai tệp cấu hình JSON liệt kê cùng các thiết lập nhưng theo thứ tự khác nhau. Bật “Sắp xếp khóa A–Z” rồi định dạng cả hai; giờ đây, các kết quả sẽ thẳng hàng và công cụ so sánh văn bản chỉ hiển thị những điểm khác biệt thực sự.

Tìm dấu phẩy gây lỗi

Tệp package.json được chỉnh sửa thủ công không tải được. Dán nội dung vào sẽ hiển thị lỗi “Dấu phẩy thừa ở cuối” tại dòng 14, cột 5, chỉ đúng dấu phẩy sau phần phụ thuộc cuối cùng.

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

Tại sao một số lớn bị thay đổi sau khi định dạng?

Bộ phân tích JSON trong trình duyệt lưu số dưới dạng số dấu phẩy động 64 bit, chỉ biểu diễn chính xác các số nguyên đến 9,007,199,254,740,991. Số nguyên lớn hơn sẽ được làm tròn đến giá trị có thể biểu diễn gần nhất. Nếu dữ liệu có ID 64 bit, hãy truyền chúng dưới dạng chuỗi.

Công cụ có định dạng được JSON có chú thích hoặc dấu phẩy thừa ở cuối (JSON5, JSONC) không?

Không. Công cụ tuân thủ nghiêm ngặt tiêu chuẩn JSON (RFC 8259) và báo lỗi kèm vị trí khi phát hiện chú thích hoặc dấu phẩy thừa ở cuối, để bạn có thể xóa chúng. Hầu hết bộ phân tích JSON trong các ngôn ngữ lập trình cũng hoạt động như vậy.

Sắp xếp khóa có làm thay đổi dữ liệu không?

Không có giá trị nào thay đổi, chỉ có thứ tự khóa bên trong các đối tượng. Theo định nghĩa, thứ tự trong đối tượng JSON không quan trọng nên kết quả vẫn tương đương. Mảng không bao giờ bị sắp xếp lại vì thứ tự của chúng có ý nghĩa.

Tôi có thể định dạng tệp lớn đến mức nào?

Các tệp có dung lượng vài megabyte vẫn xử lý được trên trình duyệt máy tính hiện đại. Với dữ liệu đầu vào trên khoảng 300.000 ký tự, công cụ sẽ đợi bạn nhấn Định dạng hoặc Rút gọn thay vì định dạng lại sau mỗi lần gõ. Kết quả rất lớn có thể khiến việc cuộn trong hộp văn bản trên điện thoại bị chậm.

JSON của tôi có được tải lên đâu không?

Không. Việc phân tích và định dạng được thực hiện trong trình duyệt bằng JavaScript. Văn bản không được gửi đến máy chủ hoặc lưu trữ.

Quyền riêng tư

JSON của bạn chỉ được phân tích và định dạng trong trình duyệt. Dữ liệu không được tải lên, ghi nhật ký, lưu trữ hoặc đưa vào dữ liệu phân tích.