§

Dán JSON

§

Kết quả đã rút gọn

text
§

% tiết kiệm

  • Kích thước gốc
  • Kích thước rút gọn
  • Đã tiết kiệm
  • % tiết kiệm

Cắt JSON xuống dạng hợp lệ nhỏ nhất sinh lợi mọi nơi: hạ tầng 5G IoT của Viettel, VNPT và Vinaphone gửi telemetry cảm biến qua sóng di động trả phí, các fintech như MoMo, ZaloPay và VNPAY trao đổi callback giao dịch qua webhook JSON, và NAPAS chuyển tiền tức thời 24/7 yêu cầu payload gọn. Hướng dẫn API ngân hàng của Ngân hàng Nhà nước Việt Nam khuyến nghị nén dữ liệu nhạy cảm trên đường truyền, trong khi BIDV, Vietcombank cùng các ứng dụng mobile banking khác tối ưu từng byte cho người dùng vùng xa. Cổng dữ liệu mở dulieu.gov.vn xuất bản tập JSON nhiều gigabyte mà kỹ sư tải về phân tích với jq.

Rút gọn JSON là gì?

JSON (JavaScript Object Notation) là một định dạng trao đổi dữ liệu nhẹ dựa trên văn bản, được định nghĩa bởi RFC 8259 và ECMA-404. Rút gọn loại bỏ mọi dấu cách, tab và xuống dòng nằm ngoài chuỗi văn bản — các giá trị được giữ nguyên từng byte, chỉ khoảng trắng trang trí được loại bỏ. Kết quả phân tích về đúng cùng một giá trị với đầu vào.

Rút gọn JSON hoạt động như thế nào?

Đầu vào của bạn được xử lý hoàn toàn trong trình duyệt bằng các hàm tích hợp JSON.parseJSON.stringify. Các bước chính như sau:

  1. Đầu vào được đọc nguyên văn từ vùng nhập liệu — từng byte bạn dán đều được giữ trong bộ nhớ cục bộ.
  2. Trình duyệt phân tích nó bằng JSON.parse. Nếu đầu vào không phải JSON hợp lệ, bộ phân tích ném ra SyntaxError được bắt và hiển thị nguyên văn — văn bản của bạn không bao giờ rời khỏi trang.
  3. Khi phân tích thành công, giá trị đã phân tích được phát ra lại bằng JSON.stringify(value) — không có đối số thụt lề — tạo ra dạng hợp lệ ngắn nhất của cùng một giá trị.
  4. Độ dài byte của cả văn bản gốc lẫn văn bản đã rút gọn được tính bằng new TextEncoder().encode(...).byteLength — đúng số byte UTF-8 mà một máy chủ HTTP sẽ thấy trên đường truyền.
  5. Kết quả được ghi vào vùng văn bản chỉ đọc, dải số liệu báo cáo độ lệch byte cùng phần trăm tiết kiệm, và nút Tải về đóng gói kết quả thành tệp .min.json để bạn xuất bản.

Vì sao rút gọn JSON bằng công cụ này?

  • Quyền riêng tư: mọi lượt phân tích, rút gọn và đo lường đều diễn ra trong trình duyệt của bạn. JSON không bao giờ đến máy chủ của chúng tôi — không tải lên, không telemetry, không tài khoản.
  • Số byte thật: kích thước gốc, kích thước rút gọn và lượng tiết kiệm được tính bằng TextEncoder, để bạn thấy đúng độ lệch byte UTF-8 mà CDN hay API gateway sẽ tính phí.
  • Không mất dữ liệu: rút gọn thuần túy là chỉnh trang — mọi giá trị phân tích về cùng cây JSON, nên an toàn cho payload sản phẩm, manifest và fixture nhúng.
  • Nhanh: JSON.parse + JSON.stringify nguyên bản xử lý ngay các payload cỡ clipboard, không cần thư viện bên ngoài.

Các ứng dụng phổ biến của rút gọn JSON là gì?

Việc loại bỏ khoảng trắng vô nghĩa khỏi JSON xuất hiện trong phát triển web, kỹ thuật dữ liệu và hệ thống nhúng:

  • Giảm payload API: thu nhỏ thân request và response trước khi vượt qua một API gateway tính phí, đường ra tốn tiền hoặc liên kết vệ tinh.
  • Nhúng vào HTML: đặt một khối JSON vào thuộc tính data-* hoặc thẻ <script type="application/json"> mà không để khoảng trắng pretty-print lọt vào trang đã render.
  • localStorage gọn hơn: giảm hạn ngạch localStorage / IndexedDB bằng cách ghi JSON đã rút gọn thay vì JSON in đẹp, đặc biệt giá trị trên trình duyệt di động có giới hạn lưu trữ chặt cho mỗi origin.

Ví dụ về rút gọn JSON trông như thế nào?

Dán một tệp cấu hình in đẹp 1.2 KB (khoảng 1,225 byte với thụt lề 2 dấu cách) và nhấn Rút gọn thường thu nó xuống dưới 0.4 KB — tiết kiệm 66% — với mọi khóa và giá trị được giữ nguyên chính xác. Tệp output.min.json tải về giống y từng byte với điều mà một máy chủ HTTP phát ra với Content-Type: application/json và không có lớp formatter nào.

Công cụ này có chạy trong trình duyệt không?

Có. Quy trình rút gọn là JSON.parse + JSON.stringify thuần túy chạy trong tab trình duyệt. Không gì được tải lên, không service worker nào ủy quyền đầu vào của bạn, và trang không gửi yêu cầu mạng nào cho bước rút gọn. Lưu lượng ra duy nhất là các tài nguyên tải trang chuẩn (CSS, font, analytics) — JSON của bạn không bao giờ đến Ultim8Soft.

Vì sao phải rút gọn JSON?

JSON đã rút gọn phân tích về cùng giá trị với nguồn in đẹp nhưng nhỏ hơn trên đường truyền và trong lưu trữ. Payload nhỏ hơn đồng nghĩa với hóa đơn CDN egress thấp hơn, tải xuống trên di động nhanh hơn, ít áp lực bộ nhớ bên trong service worker, và khớp tốt hơn vào các phong bì kích thước cố định như payload JWT, thuộc tính HTML data-* và hạn ngạch localStorage. Với các API lưu lượng cao, lượng byte tiết kiệm cộng dồn — giảm 30% trên endpoint 1 GB/ngày tiết kiệm khoảng 9 GB mỗi tháng.

Rút gọn có mất dữ liệu không?

Không. Rút gọn JSON chỉ loại bỏ khoảng trắng nằm ngoài chuỗi văn bản — dấu cách, tab và xuống dòng mà bản đặc tả đã xếp là không quan trọng. Mọi khóa, giá trị, số, chuỗi escape và ký tự chuỗi đều được giữ nguyên từng byte. Kết quả phân tích thành một giá trị deepEqual với đầu vào. Chỉ thụt lề trang trí biến mất.

Khác biệt giữa bộ định dạng và bộ rút gọn là gì?

Công cụ đi kèm Trình định dạng JSON đi theo hướng ngược lại: nó mở rộng khoảng trắng để con người đọc cấu trúc lồng nhau. Còn Trình rút gọn loại bỏ khoảng trắng đó để vận chuyển và lưu trữ. Hai công cụ là nghịch đảo — chuyển một tài liệu JSON qua Trình định dạng → Trình rút gọn cho ra cùng chuỗi byte bạn đã đưa vào trình rút gọn, vì cả hai đều thao tác trên giá trị đã phân tích chứ không phải dấu trang trí.

Trình rút gọn JSON này dùng cùng bộ phân tích mà runtime Node.js, Deno hay trình duyệt của bạn dùng, và cho ra kết quả giống từng byte với điều một máy chủ HTTP tối giản sẽ phát ra. Dán bất kỳ JSON nào ở trên, sao chép kết quả, hoặc tải về dưới dạng .min.json.