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.
So sánh và Diff JSON — Dá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
- Dán JSON gốc vào ô Trái (gốc).
- Dán JSON bạn muốn so sánh vào ô Phải (đã thay đổi).
- Đọ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.
- 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.
- 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
Mã hóa / giải mã Base32 / Base58
Mã hóa văn bản thành Base32 (RFC 4648) hoặc Base58 (bảng chữ cái Bitcoin) và giải mã cả hai trở lại văn bản, hoàn toàn an toàn với UTF-8 và toàn bộ trong trình duyệt của bạn.
Mã hóa / Giải mã Base64
Mã hóa hoặc giải mã Base64 (an toàn UTF-8) với bảng chữ cái URL-safe, đệm tùy chọn, ngắt dòng 64/76, đếm byte và ký tự trực tiếp, cùng chế độ xem byte dạng hex hoặc nhị phân.
Công cụ chuyển đổi kiểu chữ và đếm
Chuyển văn bản giữa UPPERCASE, camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, dot.case và hơn thế, đồng thời đếm ký tự, từ và dòng.
Trình định dạng và rút gọn mã
Làm đẹp hoặc rút gọn HTML, CSS và JavaScript ngay lập tức trong trình duyệt của bạn, với thụt lề 2 dấu cách, 4 dấu cách hoặc tab và nén JavaScript bằng Terser.