Tải ví dụ mẫu
Cách so sánh JSON
Chú giải màu sắc
JSON Diff là gì?
JSON Diff (so sánh JSON) là quá trình phân tích hai cấu trúc dữ liệu JSON để xác định chính xác những thuộc tính nào đã được thêm, xóa hoặc thay đổi giá trị. Không giống so sánh văn bản thông thường, JSON diff hiểu cấu trúc dữ liệu — nó biết rằng thứ tự các khóa trong object không quan trọng, và mỗi phần tử mảng cần được so sánh theo vị trí.
Công cụ này đặc biệt hữu ích trong phát triển phần mềm, nơi bạn cần so sánh phản hồi API giữa các phiên bản, kiểm tra thay đổi cấu hình, hoặc debug sự khác biệt trong dữ liệu. Thay vì đọc từng dòng thủ công, bạn nhận được báo cáo chính xác về mọi thay đổi.
Cách so sánh hoạt động
Công cụ sử dụng thuật toán so sánh sâu (deep diff) qua các bước:
- Phân tích cú pháp: Cả hai JSON được parse thành cấu trúc dữ liệu JavaScript, chuẩn hóa thứ tự khóa.
- Duyệt đệ quy: Thuật toán duyệt qua từng cấp của cây dữ liệu, so sánh giá trị tại mỗi đường dẫn (path).
- Phân loại khác biệt: Mỗi thuộc tính được phân vào 4 nhóm: thêm mới (+), xóa (-), thay đổi (~), hoặc giữ nguyên.
- Hiển thị kết quả: Hai chế độ xem — cấu trúc (bảng theo đường dẫn) và dòng (diff theo từng dòng JSON đã format).
Chế độ xem cấu trúc so với xem theo dòng
Chế độ cấu trúc (Structural) hiển thị từng thay đổi theo đường dẫn thuộc tính (ví dụ: users[1].name). Đây là chế độ tốt nhất khi bạn cần biết chính xác thuộc tính nào thay đổi, đặc biệt với JSON lồng nhau nhiều cấp.
Chế độ dòng (Line-by-Line) hiển thị diff giống git diff — mỗi dòng JSON được format đẹp và so sánh trực tiếp. Thích hợp khi bạn muốn xem tổng quan nhanh về thay đổi hoặc cần copy đoạn diff để chia sẻ với đồng nghiệp.
Các trường hợp sử dụng phổ biến
So sánh phản hồi API
Khi phát triển hoặc cập nhật API, so sánh response giữa phiên bản cũ và mới giúp phát hiện breaking changes. Ví dụ: field bị đổi tên, kiểu dữ liệu thay đổi, hoặc field mới được thêm vào mà client chưa xử lý.
Kiểm tra cấu hình
File cấu hình JSON (package.json, tsconfig.json, .eslintrc) thường xuyên thay đổi. So sánh trước và sau khi chỉnh sửa giúp đảm bảo bạn chỉ thay đổi những gì cần thiết, tránh lỗi do thay đổi không mong muốn.
Debug dữ liệu
Khi dữ liệu đầu ra không đúng như mong đợi, so sánh JSON thực tế với JSON kỳ vọng giúp xác định chính xác điểm sai lệch. Đặc biệt hữu ích trong pipeline xử lý dữ liệu (ETL) và kiểm thử tự động.
Thực hành tốt khi so sánh JSON
- Luôn format (pretty-print) JSON trước khi so sánh để kết quả dễ đọc hơn.
- Khi so sánh mảng lớn, lưu ý rằng so sánh theo chỉ số — nếu phần tử được chèn vào giữa, tất cả phần tử sau sẽ bị đánh dấu là thay đổi.
- Sử dụng chế độ cấu trúc cho JSON phức tạp lồng nhiều cấp, chế độ dòng cho JSON đơn giản.
- Copy kết quả diff để lưu vào tài liệu hoặc issue tracker cho mục đích theo dõi.
- Kiểm tra cả hai JSON đều hợp lệ trước khi so sánh — JSON không hợp lệ sẽ gây lỗi parse.
Câu hỏi thường gặp
Công cụ dữ liệu khác
JSON Validator & Formatter — Check & Fix JSON Syntax Online
Validate JSON syntax instantly and see the exact error with line and column numbers. Format (pretty-print) or minify valid JSON. Free, private, runs entirely in your browser.
JSON Formatter — Beautify, Minify & Validate JSON Online
Format, beautify, and minify JSON data with real-time validation. Configurable indentation (2/4/tab), instant error detection, copy and download. Free online JSON formatter for developers.
JSON Minifier — Compress JSON & Remove Whitespace Online
Minify JSON online by removing all whitespace and indentation. Shows before/after size comparison with savings percentage. Validates JSON before compressing to guarantee valid output. Includes prettify mode, download, and copy. Free, private, runs entirely in your browser.
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