logo
GeekFormat

Công cụ nén JSON online miễn phí, hỗ trợ nén gọn một dòng JSON, Escape/Unescape JSON, tích hợp sửa lỗi cú pháp thông minh tự động xử lý lỗi phổ biến như dấu phẩy đuôi, hiển thị tỷ lệ nén theo thời gian thực, trình soạn thảo CodeMirror có phím tắt, xử lý thuần frontend.

Đề xuất Liên quan

Trường hợp sử dụng

  • Nén body yêu cầu/phản hồi JSON trong phát triển API, giảm số byte truyền HTTP, tăng tốc độ phản hồi giao diện (đặc biệt môi trường mạng yếu di động)
  • Tinh gọn tệp cấu hình JSON frontend, gói ngôn ngữ i18n, dữ liệu Mock trước khi lên production, giảm kích thước tài nguyên tĩnh
  • Escape đối tượng JSON thành chuỗi ký tự nhúng mã trong mã unit test, lệnh Postman/curl
  • Unescape một cú nhấp JSON đã thoát (như \"key\":\"value\") sao chép từ nhật ký thành JSON có thể đọc
  • Sửa hàng loạt tệp JSON có lỗi cú pháp như dấu phẩy đuôi, nháy đơn, một cú nhấp chuyển thành JSON hợp lệ
  • Nén JSON đã định dạng thành một dòng rồi dán vào tham số lệnh một dòng hoặc công cụ trò chuyện để chia sẻ

Tính năng

  • Chức năng ba trong một: Nén gọn JSON + Escape + Unescape, bao gồm ba tình huống: nén giảm kích thước, nhúng chuỗi mã, khôi phục chuỗi thoát
  • Sửa lỗi cú pháp thông minh: Tích hợp động cơ tryFixJSON, tự động phát hiện và sửa lỗi JSON phổ biến như dấu phẩy đuôi, nháy đơn, chú thích, nháy chưa đóng, v.v.
  • Trình soạn thảo CodeMirror: Bố cục hai cột đầu vào trái kết quả phải, hỗ trợ tô sáng cú pháp JSON, thanh chia kéo được, điều chỉnh cỡ chữ
  • Thống kê nén thời gian thực: Thanh trạng thái hiển thị ngay kích thước gốc (Bytes/KB/MB), kích thước sau nén, phần trăm tỷ lệ nén chính xác
  • Phím tắt bàn phím: Shift+Cmd/Ctrl+C nén, E escape, U unescape, O tải lên, D tải xuống, K xóa trắng, hiệu quả không cần chuột
  • Chế độ tự động thực hiện: Sau khi dán hoặc chỉnh sửa debounce 400ms tự động nén/escape, thấy gì được đó
  • Tải lên tải xuống tệp: Hỗ trợ kéo thả hoặc nhấp tải lên tệp .json/.txt, sau khi xử lý một cú nhấp tải xuống output.json
  • Ghi nhớ lịch sử cục bộ: localStorage tự động lưu nội dung nhập lần trước, làm mới trang không bị mất
  • Dữ liệu mẫu: Một cú nhấp tải JSON mẫu trải nghiệm nhanh, thông báo lỗi có nút sửa
  • An toàn thuần frontend: Tất cả phép tính thực hiện trên trình duyệt cục bộ, dữ liệu không tải lên máy chủ, mất mạng có thể dùng

Cách Sử dụng

  1. Dán nội dung JSON vào trình soạn thảo bên trái, hoặc nhấp nút tải lên chọn tệp .json/.txt cục bộ, cũng có thể nhấp nút「Mẫu」để tải mẫu
  2. Mặc định tự động thực hiện chế độ nén (debounce 400ms), cũng có thể nhấp thủ công nút「Nén」hoặc nhấn phím tắt Shift+Cmd/Ctrl+C
  3. Khi cần escape thành chuỗi mã nhấn Shift+Cmd/Ctrl+E hoặc chuyển chế độ thành Escape; khi cần khôi phục chuỗi escape nhấn Shift+Cmd/Ctrl+U
  4. Nếu JSON có lỗi cú pháp, phía dưới sẽ hiển thị thông báo lỗi màu đỏ, khi có lỗi có thể sửa sẽ xuất hiện nút「Thử sửa」, nhấp để tự động sửa
  5. Thanh trạng thái phía dưới hiển thị số byte trước/sau nén và phần trăm tỷ lệ nén theo thời gian thực, sau khi xác nhận kết quả nhấp nút「Sao chép」hoặc「Tải xuống」
  6. Thanh chia giữa bảng trái phải có thể kéo điều chỉnh độ rộng, cũng có thể sử dụng phím tắt hoàn thành nhanh tất cả thao tác

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

Sự khác biệt giữa nén JSON và định dạng JSON là gì?

Định dạng JSON (Beautify) là thêm thụt lề, xuống dòng và khoảng trắng giữa các cặp khóa-giá trị để con người dễ đọc hơn, phù hợp cho phát triển và gỡ lỗi; nén JSON (Minify) là loại bỏ tất cả các ký tự trắng không cần thiết (khoảng trắng, xuống dòng, tab, thụt lề), chuyển JSON nhiều dòng thành định dạng gọn một dòng, mục đích là giảm kích thước, tăng hiệu quả truyền, phù hợp cho truyền API môi trường production, tinh gọn tệp cấu hình và nhúng vào chuỗi mã. Cả hai là hoạt động bổ sung — khi phát triển xem phiên bản định dạng, khi lên production dùng phiên bản nén.

JSON Escape là gì? Khi nào cần sử dụng?

JSON Escape là thêm dấu gạch chéo ngược thoát cho các ký tự đặc biệt trong chuỗi JSON (chủ yếu là chuyển dấu nháy kép " thành \", dấu gạch chéo ngược \ thành \\, xuống dòng thành \n, v.v.), chuyển đối tượng JSON nhiều dòng thành một chuỗi ký tự một dòng có thể nhúng trực tiếp vào mã nguồn JavaScript, Java, Python, v.v. Tình huống điển hình: khi viết unit test nhúng phản hồi JSON làm chuỗi trong mã kiểm tra; truyền chuỗi JSON trong lệnh Postman hoặc curl; đặt JSON làm giá trị chuỗi trong tệp cấu hình. Unescape là khôi phục chuỗi đã thoát về JSON chuẩn.

JSON đầu vào có lỗi cú pháp (như dấu phẩy đuôi), nén có thành công không?

Có thể. Công cụ này tích hợp động cơ sửa lỗi cú pháp thông minh (tryFixJSON), trước khi nén sẽ tự động phát hiện và cố gắng sửa các lỗi JSON phổ biến: 1) dấu phẩy thừa ở cuối (trailing comma), như {"a":1,}; 2) dấu nháy đơn thay vì nháy kép, như {'a':1}; 3) chuỗi chưa đóng; 4) chú thích JavaScript (// và /* */); 5) dấu phẩy thừa ở cuối, v.v. Sau khi sửa mới thực hiện nén hoặc escape, đảm bảo đầu ra JSON hợp lệ 100%. Nếu phát hiện lỗi có thể sửa, sẽ hiển thị nút「Thử sửa」trên bảng điều khiển, nhấp để sửa một cú nhấp.

Nén JSON có làm mất dữ liệu không? Tỷ lệ nén thường là bao nhiêu?

Không mất dữ liệu. Nén JSON chỉ loại bỏ các ký tự trắng định dạng (khoảng trắng, xuống dòng, tab), không thay đổi bất kỳ tên khóa, giá trị, kiểu dữ liệu và cấu trúc nào, sau khi JSON.parse rồi JSON.stringify sẽ hoàn toàn nhất quán với dữ liệu gốc. Tỷ lệ nén phụ thuộc vào mức độ định dạng của JSON gốc: nếu ban đầu là JSON định dạng thụt lề 2 khoảng trắng, tỷ lệ nén thường là 20%-40% (loại bỏ thụt lề và xuống dòng); nếu có nhiều khoảng trắng liên tục hoặc chú thích (sau khi sửa), tỷ lệ nén có thể đạt trên 50%. Thanh trạng thái hiển thị số byte gốc, số byte sau nén và tỷ lệ nén chính xác theo thời gian thực.

Khi nén cấu hình JSON nhạy cảm hoặc dữ liệu API có bị rò rỉ không?

Không. Công cụ này sử dụng kiến trúc xử lý thuần frontend, tất cả phân tích cú pháp, nén, escape, sửa lỗi JSON đều hoàn thành trong công cụ JavaScript của trình duyệt tại máy của bạn, dữ liệu không được tải lên máy chủ bên ngoài thông qua bất kỳ yêu cầu mạng nào, mất mạng cũng có thể sử dụng bình thường. Khóa API, cấu hình cơ sở dữ liệu, dữ liệu nghiệp vụ và thông tin nhạy cảm của bạn luôn ở lại máy cục bộ.

Hỗ trợ những phím tắt nào?

Để tăng hiệu quả, công cụ này cung cấp hỗ trợ phím tắt bàn phím đầy đủ (macOS dùng ⌘+Shift, Windows dùng Ctrl+Shift): Shift+⌘/Ctrl+C nén một cú nhấp; Shift+⌘/Ctrl+E escape; Shift+⌘/Ctrl+U unescape; Shift+⌘/Ctrl+O tải tệp lên; Shift+⌘/Ctrl+D tải kết quả xuống; Shift+⌘/Ctrl+K xóa trắng. Khi nhập, công cụ cũng debounce 400ms tự động thực hiện chế độ hiện tại, không cần nhấp nút lặp lại.

Nén JSON (JSON Minify) là gì?

Nén JSON (JSON Minification) là quá trình loại bỏ tất cả các ký tự trắng không cần thiết trong văn bản JSON (khoảng trắng, ký tự xuống dòng \n, ký tự tab \t, ký tự về đầu dòng \r) và chú thích (không chuẩn nhưng phổ biến), chuyển JSON định dạng thụt lề nhiều lớp thành định dạng gọn một dòng. Nén JSON không thay đổi bất kỳ nội dung dữ liệu nào — tên khóa, giá trị, kiểu dữ liệu (chuỗi/số/boolean/null/mảng/đối tượng), cấu trúc lồng nhau hoàn toàn giữ nguyên, chỉ loại bỏ khoảng trắng định dạng dùng cho con người đọc.

Giá trị cốt lõi của nén JSON là giảm kích thước dữ liệu. Khoảng trắng thụt lề và xuống dòng trong JSON định dạng mặc dù thân thiện với nhà phát triển, nhưng là byte dư thừa khi truyền và lưu trữ mạng. Ví dụ một phản hồi API điển hình, sau khi định dạng có thể 2KB, sau khi nén có thể chỉ 1.2-1.5KB, kích thước giảm 25%-40%. Trong tình huống API đồng thời cao, môi trường mạng yếu di động, phân phối tệp cấu hình quy mô lớn, nén JSON có thể giảm đáng kể tiêu thụ băng thông, tăng tốc độ truyền, giảm chi phí máy chủ. Trong môi trường production thường kết hợp với nén HTTP như Gzip/Brotli cùng sử dụng, nhưng JSON Minify như nén tầng nội dung vẫn không thể thay thế.

Việc triển khai nén JSON rất đơn giản: dùng JSON.parse() phân tích văn bản thành đối tượng JavaScript, rồi dùng JSON.stringify(obj) không có tham số thụt lề tuần tự hóa đầu ra — đó chính là cách triển khai cốt lõi của công cụ này. Cách parse + stringify này tự nhiên đảm bảo JSON đầu ra hợp lệ 100%, còn có thể tự động loại bỏ chú thích bất hợp pháp và dấu phẩy đuôi (phối hợp sửa lỗi). Cần lưu ý: nén JSON và nén Gzip là tối ưu hai tầng khác nhau — JSON Minify là tầng nội dung loại bỏ khoảng trắng dư thừa, Gzip là thuật toán nén chung tầng truyền, cả hai có thể sử dụng chồng lên nhau.

术语表

JSON
JavaScript Object Notation, một định dạng trao đổi dữ liệu nhẹ, sử dụng cặp khóa-giá trị và cấu trúc mảng, con người có thể đọc và máy dễ phân tích, là định dạng dữ liệu chuẩn của REST API.
Minify / Nén
Quá trình loại bỏ tất cả các ký tự không cần thiết (khoảng trắng, xuống dòng, chú thích) trong mã/dữ liệu để giảm kích thước, phổ biến trong tài nguyên frontend như JS/CSS/JSON.
Beautify / Định dạng
Hoạt động ngược của Minify, thêm thụt lề, xuống dòng, khoảng trắng làm cấu trúc JSON rõ ràng dễ đọc, còn gọi là Prettify hoặc Pretty Print.
Escape / Thoát
Thêm dấu gạch chéo ngược trước ký tự đặc biệt (như " thành \", xuống dòng thành \n), chuyển JSON nhiều dòng thành chuỗi ký tự một dòng có thể nhúng vào mã.
Unescape / Phản thoát
Hoạt động ngược của escape, khôi phục chuỗi thoát như \", \n, \\ thành ký tự gốc, khôi phục định dạng JSON chuẩn.
Trailing Comma / Dấu phẩy đuôi
Dấu phẩy thừa sau phần tử cuối cùng của đối tượng hoặc mảng, JavaScript cho phép nhưng chuẩn JSON không cho phép, là lỗi cú pháp JSON phổ biến nhất.
Gzip / Brotli
Thuật toán nén chung tầng truyền HTTP, bổ trợ cho JSON Minify, sau khi Minify rồi nén Gzip hiệu quả tốt nhất.
Payload / Tải trọng
Thân dữ liệu thực sự truyền trong yêu cầu hoặc phản hồi API (thường là định dạng JSON), nén Payload có thể trực tiếp giảm tiêu thụ băng thông.
CodeMirror
Thành phần trình soạn thảo mã phía trình duyệt, công cụ này dùng nó để triển khai tô sáng cú pháp JSON, số dòng, khớp dấu ngoặc và trải nghiệm biên tập chuyên nghiệp khác.

So sánh nén JSON và các cách nén phổ biến

Cách nénTầng nénCó tổn thấtKhả năng đọcTình huống áp dụng
JSON MinifyTầng nội dung (bỏ trắng)Không tổn thấtKhông đọc được (một dòng)Truyền API production, tinh gọn cấu hình
JSON BeautifyTầng nội dung (thêm trắng)Không tổn thấtĐọc được caoPhát triển gỡ lỗi, đọc thủ công
GzipTầng truyềnKhông tổn thấtKhông đọc được (nhị phân)HTTP Content-Encoding
BrotliTầng truyềnKhông tổn thấtKhông đọc được (nhị phân)Nén tài nguyên tĩnh HTTPS (cao hơn Gzip 20%)
MessagePackTầng tuần tự hóaKhông tổn thấtKhông đọc được (nhị phân)Truyền thông nội bộ RPC hiệu năng cao

Bảng đối chiếu ký tự đặc biệt JSON Escape

Ký tự gốcSau khi thoátTênGhi chú
"\"Dấu nháy képKý tự phổ biến nhất bắt buộc phải thoát trong chuỗi JSON
\\\Dấu gạch chéo ngượcBản thân ký tự thoát cần được thoát
Xuống dòng\nNewlineChuỗi nhiều dòng nén thành một dòng bắt buộc phải thoát
Tab\tTabThoát Tab thụt lề
Về đầu dòng\rCarriage ReturnCR trong CRLF xuống dòng Windows
/\/Dấu gạch chéoChuẩn JSON cho phép nhưng không bắt buộc thoát (tùy chọn)

Authoritative References