Thu gọn JSON
Dán JSON -> Thu gọn -> Sao chép. Giảm kích thước, xóa khoảng trắng. Miễn phí, bảo mật.
Dữ liệu trước và sau khi nén
| Loại | Định dạng | Thu gọn | Tiết kiệm |
|---|---|---|---|
| package.json | 1.2 KB | 680 B | -43% |
| API Response | 4.8 KB | 2.9 KB | -40% |
| Config File | 820 B | 510 B | -38% |
| GeoJSON | 12.4 KB | 7.1 KB | -43% |
Cách nén/định dạng JSON trong các ngôn ngữ phổ biến
Nhấp để tải ví dụ vào ô nhập
JSON Minification là gì?
JSON minification (thu gọn JSON) là quá trình loại bỏ tất cả khoảng trắng không cần thiết khỏi dữ liệu JSON, bao gồm dấu cách, tab, xuống dòng và thụt lề, mà không làm thay đổi cấu trúc hay giá trị dữ liệu. Kết quả là một chuỗi JSON nhỏ gọn hơn, tiêu tốn ít băng thông hơn khi truyền qua mạng và ít dung lượng lưu trữ hơn.
Điều quan trọng cần hiểu: JSON được định nghĩa trong RFC 8259 không quy định việc thụt lề. Khoảng trắng trong JSON chỉ dành cho con người đọc. Máy tính phân tích cú pháp JSON chỉ quan tâm đến cấu trúc dữ liệu, không phải định dạng. Vì vậy, minification không ảnh hưởng đến tính toàn vẹn dữ liệu.
Tại sao nên thu gọn JSON?
Thu gọn JSON mang lại nhiều lợi ích thiết thực:
- Giảm kích thước payload: Thông thường giảm 20-50% kích thước file, tùy thuộc vào mức thụt lề gốc. JSON với indent 4 spaces tiết kiệm nhiều hơn indent 2 spaces.
- Tải trang nhanh hơn: Payload API nhỏ hơn đồng nghĩa với thời gian tải ngắn hơn, đặc biệt quan trọng trên mạng di động chậm.
- Tiết kiệm băng thông: Với hàng triệu request mỗi ngày, giảm 30% kích thước JSON có thể tiết kiệm đáng kể chi phí CDN và bandwidth.
- Cải thiện hiệu suất parse: Parser xử lý chuỗi ngắn hơn nhanh hơn, giảm thời gian JSON.parse() phía client.
- Lưu trữ hiệu quả: Dữ liệu JSON trong cơ sở dữ liệu (MongoDB, Redis, PostgreSQL JSONB) chiếm ít dung lượng hơn.
JSON.stringify hoạt động như thế nào?
Công cụ này sử dụng hàm JSON.stringify() tích hợp sẵn trong JavaScript. Quá trình gồm hai bước:
- Bước 1 — Parse:
JSON.parse(input)chuyển chuỗi JSON thành đối tượng JavaScript. Nếu JSON không hợp lệ, bước này sẽ ném lỗi SyntaxError. - Bước 2 — Serialize:
JSON.stringify(obj)chuyển đối tượng ngược lại thành chuỗi JSON, mặc định không có khoảng trắng (minified). Tham số thứ ba (indent) nếu không truyền sẽ tạo output compact.
Khi nào nên và không nên thu gọn JSON
| Nên thu gọn | Không nên thu gọn |
|---|---|
| API response gửi đến client | File cấu hình cần con người đọc/chỉnh sửa |
| Dữ liệu lưu trong database | JSON trong git repo (khó diff khi minified) |
| JSON nhúng trong HTML/JS bundle | Tài liệu API, schema documentation |
| Dữ liệu truyền qua WebSocket | File đang debug, cần đọc nhanh |
Lỗi thường gặp khi thu gọn JSON
- Trailing comma:
{"a": 1,}— JSON không cho phép dấu phẩy cuối. Xóa dấu phẩy sau phần tử cuối cùng. - Single quotes:
{'key': 'value'}— JSON bắt buộc dấu ngoặc kép. Đổi sang"key". - Comments: JSON không hỗ trợ comments (
//hay/* */). Loại bỏ trước khi minify. - Unquoted keys:
{key: "value"}— Tất cả key trong JSON phải được bao trong ngoặc kép. - Dữ liệu quá lớn: Với file JSON trên 50MB, nên dùng streaming parser (như JSONStream trong Node.js) thay vì JSON.parse().
Thu gọn JSON trong production
Trong thực tế, JSON thường được minify tự động bởi framework và build tools. Express.js mặc định không thêm khoảng trắng vào res.json(). Nginx có thể compress JSON response với gzip/brotli. Nhiều CDN tự động minify JSON response.
Tuy nhiên, việc minify thủ công vẫn hữu ích cho: config files nhúng trong environment variables, JSON payloads lưu trong database, dữ liệu hard-coded trong source code, và khi gửi JSON qua các kênh không hỗ trợ compression.
Giới thiệu về Chuyển đổi dữ liệu
Công cụ developer tự động hóa các phần lặp đi lặp lại của công việc phần mềm: format JSON, encode/decode Base64, decode JWT để xác minh claim của token, tạo UUID, format XML, diff cấu hình. Đây không phải tác vụ hào nhoáng, nhưng là các điểm nghẽn ngốn 10-15 phút nhiều lần mỗi ngày — cộng lại hàng giờ mỗi tuần. Chạy chúng trên tab trình duyệt sạch sẽ hơn vật lộn với phụ thuộc CLI hay extension IDE có thể gửi dữ liệu riêng tư của bạn cho bên thứ ba.
Vì sao nó quan trọng
Công cụ developer client-side nhanh về cơ bản quan trọng vì chúng được dùng với dữ liệu nhạy cảm. JWT token chứa danh tính người dùng. Payload Base64 có thể encode API key. JSON dump bao gồm bản ghi khách hàng. Nếu một 'công cụ developer' gửi input của bạn lên server để xử lý, bạn vừa rò rỉ production secret. Công cụ dev của ZestLab chạy 100% client-side không có network call nào sau khi load page — những gì bạn paste vẫn ở trong trình duyệt.
Riêng tư và an toàn
Tất cả công cụ developer ở đây chạy trong trình duyệt bằng JavaScript thuần. Không có 'decode server' hay 'format API' — JWT, JSON, payload encode của bạn được parse bởi code chạy trên laptop của bạn. Tự xác minh bằng DevTools trình duyệt → Network tab: bạn sẽ thấy không có request nào khi dùng bất kỳ công cụ nào. Đó là tiêu chuẩn chúng tôi giữ vì công cụ dev xử lý secret.
Thực hành tốt
- Không bao giờ paste JWT hay API token production vào BẤT KỲ công cụ online nào mà không xác minh chạy client-side (check tab Network)
- Dùng chế độ ẩn danh trình duyệt để decode một lần các payload nhạy cảm
- Bookmark công cụ bạn dùng hàng ngày — URL công cụ ZestLab ổn định, không cần tài khoản
- Khi format JSON có secret để team review, redact credential trước khi share output