So sánh và Diff JSON

So sánh hai tài liệu JSON và làm nổi bật các đường dẫn khóa được thêm, bị xóa và bị thay đổi.

Đang tải công cụ…

So sánh và Diff JSONDán hai tài liệu JSON cạnh nhau và công cụ này thực hiện so sánh có cấu trúc, theo từng khóa, thay vì so sánh dòng đơn thuần, nhờ vậy việc sắp xếp lại khóa và khoảng trắng không bao giờ tạo ra thay đổi giả. Mỗi khác biệt được báo cáo theo đường dẫn chính xác của nó, chẳng hạn user.name hoặc items[0], và được gắn nhãn là được thêm, bị xóa hoặc bị thay đổi. Mọi thứ đều được phân tích và so sánh hoàn toàn trong trình duyệt của bạn, nên dữ liệu của bạn không bao giờ rời khỏi thiết bị.

So sánh và Diff JSON là gì?

JSON Diff là một công cụ miễn phí chạy trong trình duyệt, tìm ra những khác biệt về ngữ nghĩa giữa hai giá trị JSON. Thay vì so sánh văn bản theo từng dòng, nó duyệt qua cả hai cây và khớp các khóa theo tên và các phần tử mảng theo chỉ mục, báo cáo mỗi thay đổi bằng một đường dẫn dấu chấm như config.server.port hoặc list[2]. Các nhà phát triển backend và API dùng nó để thấy chính xác điều gì đã thay đổi giữa hai phản hồi API, tệp cấu hình hoặc dữ liệu kiểm thử, trong khi các kỹ sư QA và nhà phân tích dữ liệu dùng nó để xác nhận rằng một phép biến đổi hoặc di chuyển đã tạo ra kết quả như mong đợi. Chọn kiểu Ký hiệu để đọc các thay đổi dưới dạng dòng + / - / ~, hoặc kiểu Chữ để gắn nhãn chúng là được thêm, bị xóa và bị thay đổi. Nút Hoán đổi đảo ngược đầu vào bên trái và bên phải để bạn có thể xem diff từ cả hai hướng.

Cách sử dụng So sánh và Diff JSON

  1. Dán JSON gốc vào ô Trái (gốc).
  2. Dán JSON bạn muốn so sánh vào ô Phải (đã thay đổi).
  3. Đọc diff trong khối Kết quả, nơi mỗi dòng hiển thị đường dẫn và giá trị đã thay đổi.
  4. Dùng thiết lập Kiểu để chuyển đổi giữa các ký hiệu + / - / ~ và các từ được thêm / bị xóa / bị thay đổi.
  5. Nhấp Hoán đổi để đảo ngược hai bên, hoặc Sao chép để lấy toàn bộ báo cáo diff.

Ví dụ

Một giá trị đơn lẻ đã thay đổi

Đầu vào

Trái: {"name":"Ada","age":30}
Phải: {"name":"Ada","age":31}

Đầu ra

~ age: 30 -> 31

Một khóa được thêm và một khóa bị xóa

Đầu vào

Trái: {"a":1,"b":2}
Phải: {"a":1,"c":3}

Đầu ra

- b: 2
+ c: 3

Các khóa được sắp xếp lại là giống nhau

Đầu vào

Trái: {"x":1,"y":2}
Phải: {"y":2,"x":1}

Đầu ra

Không có khác biệt - hai tài liệu bằng nhau.

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

JSON của tôi có được gửi đến máy chủ không?
Không. Cả hai tài liệu đều được phân tích và so sánh hoàn toàn trong trình duyệt của bạn bằng một quy trình so sánh sâu chạy trên thiết bị của bạn. Không có gì được tải lên, và công cụ vẫn hoạt động khi ngoại tuyến.
Điều này khác gì so với một diff văn bản thông thường?
Một diff văn bản so sánh các dòng, nên việc định dạng lại hoặc sắp xếp lại khóa trông giống như một thay đổi. Công cụ này so sánh cấu trúc đã được phân tích, khớp các khóa đối tượng theo tên và các phần tử mảng theo vị trí, nên chỉ những khác biệt ngữ nghĩa thực sự mới được báo cáo.
Thứ tự khóa có quan trọng không?
Không. Hai đối tượng có cùng khóa và giá trị được coi là bằng nhau bất kể thứ tự xuất hiện của các khóa. Tuy nhiên, các phần tử mảng được so sánh theo chỉ mục, nên việc sắp xếp lại một mảng được tính là một thay đổi.
Mỗi dòng có ý nghĩa gì?
Các đường dẫn được thêm chỉ tồn tại ở bên phải, các đường dẫn bị xóa chỉ tồn tại ở bên trái, và các đường dẫn bị thay đổi có giá trị khác nhau ở mỗi bên. Trong kiểu Ký hiệu, chúng xuất hiện dưới dạng +, - và ~; trong kiểu Chữ, chúng được viết ra bằng chữ.
Điều gì xảy ra nếu JSON của tôi không hợp lệ?
Nếu một bên không phân tích được, một ghi chú lỗi cho bạn biết bên nào (trái hoặc phải) không hợp lệ để bạn có thể sửa. Diff tự động cập nhật khi cả hai bên được phân tích thành công.

Công cụ liên quan