Phòng so sánh JSON

So sánh & Tìm Khác biệt JSON

Dán hai JSON -> So sánh -> Xem khác biệt theo cấu trúc hoặc dòng. Miễn phí, tức thì, riêng tư.

Tức thìRiêng tưSo sánh sâu2 chế độ xem
JSON A (Bên trái)
JSON B (Bên phải)
Ctrl+Enter để so sánh nhanh

Tải ví dụ mẫu

Thay đổi cấu hình
Nhấn để tải vào trình so sánh
Phản hồi API
Nhấn để tải vào trình so sánh
Giống nhau
Nhấn để tải vào trình so sánh

Cách so sánh JSON

Thứ tự khóa được chuẩn hóa trước khi so sánh — sắp xếp lại khóa không bị đánh dấu là khác biệt
Đối tượng và mảng lồng nhau được so sánh đệ quy đến giá trị lá
Thuộc tính thêm vào hiển thị màu xanh; bị xóa màu đỏ; thay đổi giá trị màu vàng
So sánh mảng theo chỉ số — phần tử chèn vào sẽ dịch chuyển các chỉ số tiếp theo
Thay đổi kiểu dữ liệu (chuỗi sang số) được báo cáo là sửa đổi
Cả hai đầu vào phải là JSON hợp lệ — JSON không hợp lệ hiển thị lỗi phân tích

Chú giải màu sắc

++Thêm — Thuộc tính chỉ có trong JSON B
--Xóa — Thuộc tính chỉ có trong JSON A
~~Thay đổi — Giá trị khác nhau giữa hai JSON
=Giữ nguyên — Giá trị giống nhau

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