Định dạng JSON

Định dạng, xác thực và nén JSON ngay lập tức.

Dán JSON của bạn

data.json
Sẵn sàng. Hãy dán JSON và chọn một hành động.

JSON của bạn được xử lý trực tiếp trong trình duyệt. Không có dữ liệu nào được tải lên BroBroGo.

Hỏi đáp

JSON của tôi có bị tải lên không?

Không. Trình định dạng chạy trực tiếp trong trình duyệt của bạn và không tải JSON của bạn lên máy chủ.

Tính năng nén (minify) có tác dụng gì?

Nén (minify) giúp loại bỏ các khoảng trắng và ngắt dòng không cần thiết trong khi vẫn giữ nguyên dữ liệu JSON.

Cấu trúc và cú pháp của dữ liệu JSON

JSON (JavaScript Object Notation) là một định dạng trao đổi dữ liệu gọn nhẹ, dựa trên văn bản và độc lập với ngôn ngữ lập trình. Cấu trúc của JSON được xây dựng trên hai tập hợp dữ liệu: danh sách các cặp tên/giá trị (đối tượng) và danh sách các giá trị có thứ tự (mảng).

Để đảm bảo tính hợp lệ, cú pháp JSON yêu cầu tuân thủ nghiêm ngặt các quy tắc định dạng. Các khóa của đối tượng bắt buộc phải được đặt trong dấu ngoặc kép. Các giá trị có thể là chuỗi, số, đối tượng, mảng, giá trị logic (true/false) hoặc null. Việc hiểu rõ các quy tắc này giúp ngăn ngừa các lỗi cú pháp phổ biến khi truyền tải dữ liệu giữa các hệ thống.

Định dạng và nén dữ liệu JSON

Trong quá trình phát triển phần mềm và tích hợp API, dữ liệu JSON thường được truyền tải dưới dạng nén để tối ưu hóa băng thông. Tuy nhiên, định dạng nén này loại bỏ toàn bộ khoảng trắng và ngắt dòng, khiến con người rất khó đọc và kiểm tra.

  • Định dạng (Formatting): Quá trình này tổ chức lại cấu trúc dữ liệu bằng cách thêm các khoảng thụt lề và xuống dòng phù hợp. Người dùng có thể chọn các mức độ thụt lề khác nhau để tối ưu hóa giao diện hiển thị trực quan. Khi hoàn tất, công cụ sẽ hiển thị thông báo "Đã định dạng JSON.".
  • Nén (Minifying): Ngược lại với định dạng, quá trình nén loại bỏ tất cả các ký tự không cần thiết như khoảng trắng, tab và xuống dòng. Điều này giúp giảm dung lượng tệp để lưu trữ hoặc truyền tải qua mạng hiệu quả hơn. Khi thực hiện xong, hệ thống sẽ thông báo "Đã nén JSON.".

Xác thực dữ liệu và xử lý lỗi cú pháp

Xác thực JSON là bước bắt buộc để đảm bảo dữ liệu không bị lỗi trước khi đưa vào hệ thống xử lý. Khi người dùng nhập dữ liệu, công cụ sẽ tự động kiểm tra tính hợp lệ của cú pháp. Nếu dữ liệu chính xác, trạng thái "JSON hợp lệ" sẽ hiển thị. Ngược lại, nếu phát hiện lỗi, trạng thái "JSON không hợp lệ" xuất hiện kèm theo vị trí cụ thể dạng "dòng {line}, cột {col}" và nút "Đi tới lỗi" để người dùng dễ dàng định vị.

Công cụ có khả năng phát hiện và chỉ ra các lỗi cú pháp cụ thể bao gồm:

  • "Thiếu dấu phẩy giữa các mục"
  • "Thừa dấu phẩy trước dấu ngoặc đóng"
  • "Khóa của đối tượng phải được đặt trong dấu ngoặc kép"
  • "Thiếu dấu hai chấm sau tên thuộc tính"
  • "Có một chuỗi thiếu dấu ngoặc kép đóng"
  • "JSON kết thúc quá sớm — có vẻ đã bị cắt bớt"
  • "Có ký tự không hợp lệ ở vị trí cần một giá trị"
  • "JSON này lồng nhau quá sâu để xử lý"
  • "Khóa {key} bị trùng — hãy xóa bớt một khóa trước khi định dạng"

Tự động phát hiện và sửa đổi các định dạng tương tự JSON

Trong thực tế, lập trình viên thường gặp phải các định dạng dữ liệu gần giống JSON nhưng không hoàn toàn hợp lệ theo chuẩn. Công cụ tích hợp tính năng tự động phát hiện và cung cấp nút "Xem trước bản sửa" để hiển thị giao diện "Xem trước bản sửa" gồm hai phần "Bản gốc" và "Sau khi sửa". Người dùng có thể nhấn "Áp dụng bản sửa" hoặc "Hủy". Nếu thành công, thông báo "Đã áp dụng bản sửa. Nhấn Ctrl/Cmd+Z để hoàn tác." sẽ hiển thị, ngược lại sẽ báo "Không thể tự động sửa nội dung này.". Nếu tài liệu quá dài, hệ thống hiển thị "Bản xem trước bị cắt bớt — bản sửa áp dụng cho toàn bộ tài liệu.".

Các định dạng không chuẩn được hỗ trợ phát hiện và xử lý bao gồm:

Định dạng phát hiện Thông báo nhận diện Hành động xử lý khi áp dụng
Khối mã Markdown "Nội dung này giống JSON nằm trong khối mã Markdown." "Khi áp dụng, chỉ giữ lại phần JSON bên trong khối mã."
Chuỗi bị thoát ký tự "Nội dung này giống JSON bị thoát ký tự bên trong một chuỗi." "Khi áp dụng, chuỗi sẽ được giải thoát ký tự thành JSON thuần."
Từ điển Python "Nội dung này giống từ điển kiểu Python chứ không phải JSON." "Khi áp dụng, dấu nháy và True/False/None sẽ được viết lại thành JSON."
JSON Lines "Nội dung này giống JSON Lines — mỗi dòng một giá trị." "Khi áp dụng, các dòng sẽ được gộp thành một mảng JSON."
Callback JSONP "Nội dung này giống JSON được bọc trong một callback JSONP." "Khi áp dụng, lớp bọc callback sẽ bị gỡ bỏ."
Cú pháp JSONC "Nội dung này giống JSONC — có chú thích hoặc dấu phẩy thừa. Hãy chuyển cú pháp sang JSONC hoặc áp dụng bản sửa." "Khi áp dụng, chú thích và dấu phẩy thừa sẽ bị xóa."

Người dùng cũng có thể chủ động chuyển đổi giữa các chế độ cú pháp thông qua nhãn "Cú pháp" để chọn giữa JSON và JSONC. Đối với các hành động sửa đổi chung khác, hệ thống áp dụng quy tắc "Khi áp dụng, nội dung nhập sẽ được thay bằng JSON đã sửa.".

Duyệt cấu trúc dữ liệu bằng chế độ xem cây

Bên cạnh chế độ xem "Mã", công cụ cung cấp chế độ xem "Cây" trực quan thông qua nhãn "Cây JSON". Chế độ này cho phép người dùng khám phá cấu trúc phân cấp của dữ liệu một cách có hệ thống. Nếu dữ liệu bị lỗi, hệ thống hiển thị "Hãy sửa lỗi JSON để xem dưới dạng cây thư mục.". Nếu dữ liệu vượt quá giới hạn hiển thị, thông báo "JSON này quá lớn để hiển thị dưới dạng cây thư mục." hoặc "JSON này có quá nhiều giá trị để hiển thị dưới dạng cây." sẽ xuất hiện.

Trong chế độ xem cây, người dùng có thể sử dụng các tính năng sau:

  • Tìm kiếm: Nhãn "Tìm kiếm khóa và giá trị" đi kèm ô nhập truy vấn. Kết quả khớp được hiển thị dưới dạng số lượng "{current} / {total}" hoặc "{current} / {total}+" nếu bị giới hạn, hoặc "Không có kết quả nào". Người dùng có thể di chuyển qua lại bằng nút "Kết quả khớp trước" và "Kết quả khớp tiếp theo".
  • Điều hướng phân cấp: Sử dụng nút "Mở rộng tất cả" và "Thu gọn tất cả". Đối với các tài liệu lớn, hệ thống sẽ giới hạn hiển thị kèm cảnh báo "JSON này quá lớn để mở rộng toàn bộ — chỉ hiển thị {count} hàng đầu tiên." và cung cấp nút "Hiển thị thêm {count} mục…". Người dùng cũng có thể tương tác thủ công qua nút "Mở rộng {key}" và "Thu gọn {key}".
  • Trích xuất dữ liệu: Tại nút gốc mang nhãn "gốc" hoặc bất kỳ nút con nào, người dùng có thể mở menu "Tùy chọn sao chép cho {key}" để chọn "Sao chép giá trị", "Sao chép JSON Pointer" hoặc "Sao chép JSONPath" nhằm phục vụ cho việc truy xuất dữ liệu chính xác.

Sắp xếp khóa và quản lý tệp dữ liệu lớn

Để hỗ trợ so sánh cấu trúc giữa các đối tượng JSON khác nhau, tính năng "Sắp xếp khóa" cho phép sắp xếp lại các thuộc tính. Khi rê chuột vào, chú thích "Sắp xếp đệ quy các khóa của đối tượng theo thứ tự mã ký tự. Thứ tự mảng không bao giờ thay đổi." sẽ hiển thị. Sau khi thực hiện, hệ thống thông báo "Đã sắp xếp khóa — thứ tự mảng giữ nguyên. Nhấn Ctrl/Cmd+Z để hoàn tác.".

Khi làm việc với các tệp dữ liệu, người dùng có thể kéo thả hoặc nhấn "Mở tệp" để tải các tệp có định dạng .json hoặc .txt. Các thông số thống kê về dữ liệu bao gồm "Ký tự", "Dòng" và "Dung lượng" sẽ được cập nhật liên tục. Công cụ bảo toàn các số nguyên lớn (large integers) mà không làm mất độ chính xác của chúng trong quá trình xử lý.

Các giới hạn kỹ thuật và thông báo lỗi liên quan đến tệp và dữ liệu đầu vào bao gồm:

  • Giới hạn dung lượng tệp: Nếu tệp vượt quá giới hạn cho phép, hệ thống báo "Tệp quá lớn — giới hạn là {limit}.". Giới hạn xử lý tối đa của công cụ là 10 MiB. Nếu dữ liệu nhập trực tiếp vượt quá mức này, thông báo "Dữ liệu đầu vào lớn hơn {limit}, vượt quá khả năng xử lý của công cụ này." sẽ xuất hiện.
  • Định dạng tệp: Nếu chọn sai định dạng, hệ thống báo "Loại tệp không được hỗ trợ — hãy chọn tệp.json hoặc.txt.".
  • Mã hóa ký tự: Tệp bắt buộc phải được mã hóa UTF-8. Nếu không đúng, thông báo "Tệp này không phải văn bản UTF-8 nên không thể mở tại đây." sẽ hiển thị.
  • Lỗi đọc tệp: Nếu có lỗi vật lý hoặc quyền truy cập, hệ thống báo "Không thể đọc tệp này. Hãy thử chọn lại.".
  • Thời gian xử lý: Ngưỡng xử lý đồng bộ của công cụ là 250.000 ký tự. Nếu việc phân tích cú pháp vượt quá thời gian an toàn, hệ thống sẽ dừng lại và hiển thị "Việc kiểm tra JSON này mất quá lâu và đã bị dừng. Hãy thử một tài liệu nhỏ hơn.".

Bảo mật thông tin và quyền riêng tư dữ liệu

Khi làm việc với các dữ liệu cấu hình hoặc thông tin hệ thống nhạy cảm, tính bảo mật của dữ liệu là yếu tố quan trọng hàng đầu. JSON của bạn được xử lý trực tiếp trong trình duyệt. Không có dữ liệu nào được tải lên BroBroGo. Toàn bộ quá trình định dạng, nén, xác thực và chuyển đổi cấu trúc đều diễn ra cục bộ trên thiết bị của người dùng, đảm bảo dữ liệu không bị rò rỉ qua môi trường mạng.

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

JSON của tôi có bị tải lên không? Không. Trình định dạng chạy trực tiếp trong trình duyệt của bạn và không tải JSON của bạn lên máy chủ.

Tính năng nén (minify) có tác dụng gì? Nén (minify) giúp loại bỏ các khoảng trắng và ngắt dòng không cần thiết trong khi vẫn giữ nguyên dữ liệu JSON.

Tại sao tôi không thể xem dữ liệu dưới dạng cây thư mục? Chế độ xem cây yêu cầu dữ liệu JSON phải hoàn toàn hợp lệ. Nếu dữ liệu có lỗi cú pháp, bạn cần khắc phục lỗi đó trước. Hệ thống sẽ hiển thị thông báo "Hãy sửa lỗi JSON để xem dưới dạng cây thư mục." để hướng dẫn bạn. Ngoài ra, nếu tài liệu quá lớn, chế độ này cũng sẽ bị hạn chế để đảm bảo hiệu năng trình duyệt.

Sự khác biệt giữa JSON và JSONC là gì? JSON tiêu chuẩn không cho phép chứa các chú thích (comments) hoặc dấu phẩy thừa ở phần tử cuối cùng (trailing commas). JSONC là một biến thể cho phép sử dụng các thành phần này. Bạn có thể chuyển đổi cú pháp hoặc sử dụng tính năng tự động sửa lỗi để loại bỏ chúng khi cần chuyển về chuẩn JSON thuần túy.