Bỏ qua tới nội dung
Toolbench

So sánh JSON

Thực sự khác nhau ở đâu giữa hai tài liệu JSON — theo giá trị và đường dẫn, không phải theo dòng.

Chạy hoàn toàn trong trình duyệt của bạn

Đang tải công cụ...

Cách sử dụng

  1. Dán tài liệu trước và sau — response API trước và sau khi deploy, hai file cấu hình, hai bộ dữ liệu mẫu.
  2. Đọc đường dẫn: mỗi dòng chỉ đúng chỗ đã thay đổi.
  3. Xem phần đổi kiểu trước; nó làm hỏng client thường xuyên hơn đổi giá trị.
  4. Định dạng lại hay đổi thứ tự khóa sẽ không hiện ra — đó chính là mục đích.

Tính năng

  • So sánh giá trị theo đường dẫn, nên thứ tự khóa và định dạng được bỏ qua đúng cách.
  • Đường dẫn viết theo cách mã nguồn truy cập: `user.roles[0]`.
  • Tách riêng thay đổi kiểu dữ liệu khỏi thay đổi giá trị.
  • Mảng so theo chỉ số — nhàm chán, và luôn đúng.
  • Chạy hoàn toàn trong trình duyệt; không tài liệu nào được tải lên.

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

Sao không dùng diff văn bản trên JSON đã format?
Vì diff văn bản trả lời một câu hỏi khác. Đổi chỗ hai khóa thì nó báo hai thay đổi trong khi tài liệu vẫn mang cùng ý nghĩa; format lại file thì nó báo như viết lại toàn bộ. So sánh giá trị theo đường dẫn chỉ báo đúng những gì một bên tiêu thụ JSON thực sự nhận ra.
Vì sao mảng so theo chỉ số thay vì ghép cặp thông minh?
Vì ghép theo nội dung là phỏng đoán. Chèn một phần tử lên đầu thì bộ ghép thông minh hoặc nhận ra sự dịch chuyển, hoặc báo mọi phần tử đều thay đổi — và khi nó đoán sai, bản diff còn tệ hơn là vô dụng. So theo chỉ số thì kết quả nhạt nhẽo nhưng luôn đúng; nếu cần so không phụ thuộc thứ tự, hãy sắp xếp cả hai bên trước.
Thế nào là đổi kiểu?
Là giá trị có kiểu JSON khác đi: `1` thành `"1"`, object thành mảng, hoặc bất cứ thứ gì thành null. Nó được tách riêng vì đây là dạng thay đổi dễ làm hỏng client nhất — một chuỗi nằm ở chỗ đáng lẽ là số sẽ vỡ tại nơi sử dụng, thường rất xa chỗ nó được đưa vào.

Định dạng và làm đẹp JSON ngay lập tức.

So sánh hai đoạn văn bản và thấy rõ dòng nào được thêm, xóa hay sửa.

Sinh interface từ một response thật — trường nào chỉ có ở vài bản ghi sẽ được đánh dấu tùy chọn.

So sánh JSON — Diff hai tài liệu JSON