json_formatter.ts

Định dạng & Thu gọn JSON

Dán JSON → Tự động định dạng → Sao chép hoặc tải về. Miễn phí, tức thì, bảo mật.

Tức thìMiễn phíBảo mậtKhông cần đăng ký
json — formatter & minifier
Thụt lề:
JSON ĐẦU VÀO
KẾT QUẢ
Tham chiếu cấu trúc JSON

6 kiểu dữ liệu cơ bản trong JSON

Object{ "key": value }{ "name": "Alice", "age": 30 }
Array[ value, value ][1, "hello", true, null]
String"text""Hello, World!"
Number42 or 3.1442, -17, 3.14, 2.5e10
Booleantrue / falsetrue
Nullnullnull
Đoạn code mẫu

Cách định dạng/thu gọn JSON trong các ngôn ngữ phổ biến

// Format (pretty print) JSON in JavaScript const raw = '{"name":"Alice","age":30}'; const formatted = JSON.stringify(JSON.parse(raw), null, 2); console.log(formatted); // { // "name": "Alice", // "age": 30 // } // With custom replacer (filter keys) JSON.stringify(obj, ["name", "email"], 2);
Mẫu phổ biến

Nhấp để tải ví dụ vào ô nhập

JSON là gì?

JSON (JavaScript Object Notation) là một định dạng trao đổi dữ liệu dạng văn bản nhẹ, dễ đọc và dễ viết cho con người, đồng thời dễ phân tích và tạo bởi máy tính. Được định nghĩa trong tiêu chuẩn ECMA-404 và RFC 8259, JSON đã trở thành định dạng dữ liệu phổ biến nhất trên web, thay thế XML trong hầu hết các API hiện đại.

JSON chỉ hỗ trợ 6 kiểu dữ liệu: object, array, string, number, boolean (true/false), và null. Không có kiểu date, comment, hay undefined. Sự đơn giản này chính là sức mạnh: bất kỳ ngôn ngữ lập trình nào cũng có thể parse và serialize JSON một cách dễ dàng.

Tại sao cần định dạng JSON?

JSON từ API thường được gửi dưới dạng thu gọn (minified) — tất cả nằm trên một dòng duy nhất không có khoảng trắng. Với các response lớn chứa hàng nghìn trường, việc đọc trực tiếp gần như không thể. Công cụ định dạng JSON thêm xuống dòng và thụt lề, biến chuỗi ký tự khó đọc thành cấu trúc phân cấp rõ ràng.

  • Debug API: Nhanh chóng tìm trường dữ liệu trong response phức tạp
  • Review cấu hình: Đọc file package.json, tsconfig.json, hoặc CI/CD config dễ dàng hơn
  • So sánh dữ liệu: JSON được định dạng giúp diff/compare chính xác hơn
  • Tài liệu hóa: JSON đẹp phù hợp cho tài liệu API, hướng dẫn kỹ thuật

Định dạng vs Thu gọn: Khi nào dùng cái nào?

Định dạng (Pretty Print) dùng cho con người đọc: debug, code review, documentation. Thu gọn (Minify) dùng cho máy: truyền tải qua mạng, lưu trữ trong database, API response. Thu gọn loại bỏ tất cả khoảng trắng thừa, giảm kích thước dữ liệu đáng kể — đặc biệt quan trọng với payload lớn.

Chế độKhi nào dùngKích thước
Format (2 spaces)Debug, code review, tài liệuLớn hơn 30-50%
Format (4 spaces)Config files, Python projectsLớn hơn 40-60%
Format (tab)Dự án dùng tab indent, Go langLớn hơn 35-55%
MinifyAPI, truyền tải, lưu trữNhỏ nhất

Lỗi JSON thường gặp và cách sửa

  • Trailing comma: JSON không cho phép dấu phẩy sau phần tử cuối cùng. {"a": 1,} là không hợp lệ. JavaScript/TypeScript cho phép, nhưng JSON thì không.
  • Single quotes: JSON bắt buộc dùng dấu ngoặc kép "". Dấu ngoặc đơn '' là không hợp lệ.
  • Comment: JSON không hỗ trợ comment. Dùng jsonc (JSON with Comments) nếu cần, nhưng phải strip trước khi parse.
  • Unquoted keys: Tất cả key trong JSON phải nằm trong dấu ngoặc kép. {name: "Alice"} là không hợp lệ.
  • Undefined/NaN/Infinity: Các giá trị này không tồn tại trong JSON. Dùng null thay cho undefined.

JSON.parse() và JSON.stringify() trong JavaScript

JSON.parse(str) chuyển chuỗi JSON thành object JavaScript. JSON.stringify(obj, replacer, space) chuyển object thành chuỗi JSON. Tham số space kiểm soát thụt lề: truyền 2 cho 2 spaces, 4 cho 4 spaces, hoặc "\t" cho tab.

Tham số replacer cho phép lọc hoặc biến đổi giá trị khi stringify. Truyền mảng tên key để chỉ giữ lại những key đó, hoặc truyền function để custom logic.

JSON trong hệ sinh thái phát triển web

REST API: Hầu hết REST API trả về JSON với header Content-Type: application/json. GraphQL cũng sử dụng JSON cho cả request và response.

Configuration: package.json (npm/yarn), tsconfig.json (TypeScript), .eslintrc.json (ESLint), composer.json (PHP), appsettings.json (.NET) — tất cả đều là JSON.

Database: MongoDB lưu dữ liệu dạng BSON (Binary JSON). PostgreSQL có kiểu jsonb cho truy vấn JSON hiệu quả. DynamoDB, Firestore cũng dựa trên cấu trúc JSON.

Giới thiệu về Developer Tools

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