Chuyển đến nội dung
SPCXTools

So sánh JSON

Nhanh chóng tìm điểm khác biệt giữa hai đối tượng JSON với tính năng so sánh chi tiết theo từng đường dẫn.

Chạy cục bộ — tệp không bao giờ rời khỏi thiết bị của bạn

Đang tải công cụ…

Cách sử dụng So sánh JSON

  1. 1Dán JSON gốc của bạn vào bảng bên trái và JSON đã sửa đổi vào bảng bên phải.
  2. 2Công cụ sẽ phân tích dữ liệu ngay lập tức và hiển thị tóm tắt các trường được thêm, bị xóa và đã thay đổi.
  3. 3Chọn "Bỏ qua thứ tự mảng" nếu bạn muốn so sánh nội dung mảng bất kể thứ tự của chúng.
  4. 4Xem lại danh sách các thay đổi chi tiết, hiển thị đường dẫn JSON chính xác cùng với giá trị cũ/mới.
  5. 5Sử dụng nút Sao chép để sao chép báo cáo khác biệt dưới dạng văn bản thuần túy vào khay nhớ tạm.

Công cụ so sánh JSON nhanh và bảo mật

Khi làm việc với các cấu trúc dữ liệu phức tạp, việc phát hiện một giá trị bị thay đổi hay một key bị thiếu có thể cực kỳ khó khăn. Công cụ so sánh JSON này được thiết kế để phân tích và làm nổi bật tức thì những điểm khác biệt chính xác giữa hai chuỗi JSON. Thay vì phải dò dẫm hàng ngàn dòng code, bạn sẽ nhận được một báo cáo rõ ràng, có cấu trúc về chính xác những gì đã thay đổi.

Vì công cụ này hoạt động hoàn toàn trên trình duyệt web, đây là một cách bảo mật tuyệt đối để chạy JSON diff online. Dữ liệu của bạn không bao giờ bị tải lên máy chủ hay lưu trữ trong cơ sở dữ liệu. Bạn có thể yên tâm dán các phản hồi API nội bộ, dữ liệu khách hàng hoặc các cấu hình môi trường nhạy cảm mà không lo rủi ro rò rỉ dữ liệu.

Cách hoạt động của công cụ so sánh JSON chuyên sâu

Nếu bạn muốn so sánh hai file JSON, việc sử dụng Diff Checker văn bản thuần túy thông thường thường dẫn đến kết quả sai lệch. Các công cụ văn bản thuần túy so sánh dữ liệu theo từng dòng. Nếu file JSON của bạn có cách thụt lề khác, hoặc các key trong một object chỉ đơn giản là thay đổi thứ tự, công cụ so sánh văn bản sẽ đánh dấu toàn bộ khối đó là đã thay đổi.

Công cụ này hoạt động theo cách khác. Nó phân tích cú pháp văn bản thành các object JavaScript thực sự và thực hiện so sánh đệ quy chuyên sâu trên chính cấu trúc dữ liệu. Nó bỏ qua khoảng trắng, thụt lề và thứ tự key trong object. Nếu {"status": "ok", "code": 200} đổi thành {"code": 200, "status": "ok"}, công cụ vẫn nhận diện chúng là hoàn toàn giống nhau.

Khi phát hiện sự khác biệt, nó sẽ tạo ra một đường dẫn chính xác đến vị trí thay đổi bằng cú pháp dấu chấm và dấu ngoặc vuông tiêu chuẩn. Ví dụ: nếu tag thứ ba trong một mảng thay đổi, công cụ sẽ trỏ trực tiếp đến tags[2] thay vì chỉ đánh dấu một dòng bất kỳ trong một file khổng lồ.

Xử lý mảng: phân biệt và không phân biệt thứ tự

Một trong những thách thức phổ biến nhất của công cụ so sánh JSON là việc xử lý mảng. Đôi khi, thứ tự các phần tử trong mảng mang ý nghĩa rất quan trọng. Nhưng cũng có lúc mảng chỉ là một danh sách không có thứ tự, và bạn chỉ quan tâm xem nội dung có khớp nhau hay không.

Theo mặc định, công cụ này sẽ so sánh mảng chính xác theo từng chỉ mục (index). Nó sẽ kiểm tra xem phần tử đầu tiên của bản gốc có khớp với phần tử đầu tiên của bản sửa đổi hay không, và cứ tiếp tục như vậy.

Nếu bạn tích chọn tùy chọn Bỏ qua thứ tự mảng, công cụ sẽ thay đổi cách xử lý. Nó sẽ tuần tự hóa (serialize) và sắp xếp nội dung của cả hai mảng theo bảng chữ cái trước khi so sánh. Điều này có nghĩa là nếu mảng gốc của bạn là ["apple", "banana"] và mảng sửa đổi là ["banana", "apple"], công cụ sẽ báo cáo không có sự khác biệt nào. Tính năng này cực kỳ hữu ích khi so sánh các phản hồi API từ những cơ sở dữ liệu không đảm bảo thứ tự sắp xếp cố định.

Các trường hợp sử dụng phổ biến

Gỡ lỗi phản hồi API. Khi một API endpoint đột ngột bị lỗi, so sánh phản hồi cũ đang hoạt động với phản hồi mới bị lỗi là cách nhanh nhất để tìm ra nguyên nhân. Dán cả hai payload để xem ngay liệu một key có bị đổi tên, kiểu dữ liệu bị đổi từ chuỗi sang số nguyên, hay một đối tượng lồng nhau đã bị xóa.

Kiểm tra file cấu hình. Các ứng dụng hiện đại phụ thuộc rất nhiều vào các file cấu hình JSON, chẳng hạn như package.json, tsconfig.json hoặc các template triển khai lên cloud. Trước khi commit thay đổi, hãy dùng công cụ này để kiểm tra chính xác dependency nào đã được cập nhật hoặc thiết lập nào đã bị thay đổi.

Audit bản ghi cơ sở dữ liệu. Các cơ sở dữ liệu dạng document như MongoDB lưu trữ bản ghi dưới cấu trúc tương tự JSON. Nếu bạn cần kiểm tra xem một hồ sơ người dùng hoặc tài liệu cụ thể đã thay đổi ra sao theo thời gian, việc so sánh bản export JSON cũ với trạng thái hiện tại sẽ cung cấp lịch sử thay đổi rõ ràng về các trường (field) được thêm, xóa và chỉnh sửa.

Hiểu kết quả

Sau khi bạn dán JSON hợp lệ vào cả hai khung, công cụ sẽ tạo một bản tóm tắt và danh sách chi tiết các thay đổi:

  • Đã thêm (+): Các key hoặc phần tử mảng có trong JSON đã sửa đổi nhưng không có trong bản gốc. Phần này được tô màu xanh lá.
  • Đã xóa (−): Các key hoặc phần tử mảng có trong JSON gốc nhưng không có trong bản đã sửa đổi. Phần này được tô màu đỏ.
  • Đã thay đổi (~): Các key có ở cả hai bên nhưng giá trị khác nhau (ví dụ: một chuỗi được cập nhật, hoặc giá trị boolean đổi từ true sang false). Phần này được tô màu vàng, hiển thị cả giá trị cũ và mới.

Nếu cần chia sẻ kết quả so sánh với đồng nghiệp hoặc dán vào báo cáo lỗi, bạn có thể sử dụng nút Copy. Thao tác này sẽ sao chép bản tóm tắt dạng văn bản thuần túy, rõ ràng về mọi đường dẫn (path) thay đổi và các giá trị tương ứng.

Để xử lý dữ liệu nâng cao, bạn có thể định dạng lại dữ liệu chưa chuẩn bằng công cụ JSON Formatter, hoặc sau khi đã hoàn thiện cấu trúc JSON, bạn có thể tạo các type definition bằng công cụ chuyển đổi JSON to TypeScript.

Câu hỏi thường gặp

Công cụ so sánh JSON xử lý mảng (array) như thế nào?
Mặc định, các mảng được so sánh chính xác theo thứ tự index. Nếu bạn chọn "Bỏ qua thứ tự mảng", công cụ sẽ sắp xếp mảng theo nội dung trước khi so sánh. Tính năng này rất hữu ích khi thứ tự các phần tử không quan trọng, miễn là dữ liệu giống hệt nhau.
Dữ liệu JSON của tôi có bị gửi lên server không?
Không. Mọi quá trình phân tích (parse) và so sánh đều diễn ra cục bộ trên trình duyệt của bạn bằng JavaScript. Dữ liệu của bạn không bao giờ bị tải lên, do đó công cụ này hoàn toàn an toàn cho các phản hồi API nhạy cảm, bản xuất database hoặc file cấu hình nội bộ.
Điều gì xảy ra nếu chuỗi JSON của tôi không hợp lệ?
Công cụ sẽ hiển thị thông báo lỗi bên dưới khung nhập văn bản, chỉ rõ vị trí bị lỗi. Bạn cần cung cấp JSON hợp lệ ở cả hai khung để có thể thực hiện so sánh.
Tôi có thể hoán đổi JSON gốc và JSON đã sửa đổi không?
Có, hãy nhấp vào nút Hoán đổi để đổi chỗ hai khung trái và phải ngay lập tức. Thao tác này sẽ đảo ngược kết quả của những dữ liệu được coi là "đã thêm" hoặc "đã xóa".
Các object lồng nhau được so sánh như thế nào?
Công cụ sẽ duyệt đệ quy qua các object và mảng lồng nhau, tạo ra một đường dẫn chính xác (như "user.address.city" hoặc "items[2].id") cho mỗi điểm khác biệt mà nó tìm thấy.
Tại sao nên dùng công cụ này thay vì công cụ so sánh văn bản thông thường?
Các công cụ text diff thông thường chỉ so sánh từng dòng văn bản. Nếu một object JSON bị xáo trộn thứ tự các key, text diff sẽ báo đó là một thay đổi lớn. Công cụ so sánh JSON phân tích cấu trúc dữ liệu thực tế, do đó nó hiểu rằng {"a":1, "b":2} và {"b":2, "a":1} là hoàn toàn giống hệt nhau.