JSON

JSON Diff / Compare

So sánh hai tài liệu JSON — những gì đã được thêm, xóa hoặc thay đổi, kèm đường dẫn chính xác đến từng khác biệt.


                        
                    

Unlike a plain text diff, JSON Diff compares two documents by structure rather than by line: it understands that key order in an object doesn't matter, and it shows the exact path (e.g. user.address.city) to every difference.

How to use it

Common uses

Things to keep in mind

Array elements are usually compared by position (index) — inserting one element near the start can show every following item as "changed", even though they merely shifted.

The comparison is structural, not textual — two JSON documents with identical data but different formatting or key order are treated as the same.

Bài viết về công cụ này: JSON Diff: so sánh cấu trúc khác gì so sánh văn bản

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

Công cụ này xác định thế nào là "khác biệt" ra sao?

Nó so sánh đệ quy cả hai cấu trúc JSON theo từng khóa và từng chỉ số, báo cáo các giá trị được thêm, xóa và thay đổi — thứ tự khóa của object bị bỏ qua, nhưng thứ tự phần tử mảng lại quan trọng.

Vì sao sắp xếp lại các phần tử mảng lại hiện ra như một thay đổi?

Mảng JSON có thứ tự, nên một phần tử chuyển từ chỉ số 2 sang chỉ số 0 được coi là xóa rồi thêm lại, chứ không phải không có thay đổi, dù giá trị giống hệt nhau.

Dữ liệu JSON của tôi có được gửi đi đâu để tính diff không?

Không. Việc so sánh diễn ra hoàn toàn trong trình duyệt của bạn — không tệp nào được tải lên máy chủ.

Kết quả so sánh có tính đến thứ tự khóa của object không?

Không, so sánh cấu trúc chỉ xem xét dữ liệu thực sự — sự tồn tại của trường, giá trị và kiểu của nó. Thứ tự khóa trong object JSON không có ý nghĩa về mặt ngữ nghĩa, nên không ảnh hưởng đến kết quả.

Có thể so sánh phần tử mảng theo id thay vì theo vị trí không?

Điều này phụ thuộc vào thuật toán so sánh cụ thể. Các công cụ diff đơn giản luôn đối chiếu phần tử mảng theo chỉ số; các công cụ phức tạp hơn cố gắng khớp object theo một trường chung như id để hiển thị chính xác hơn việc chèn hay xóa.

Bài viết: JSON

JSON Formatter: định dạng, thu gọn và xác thực

Định dạng để dễ đọc, thu gọn để giảm dung lượng, xác thực để đảm bảo đúng — ba việc khác nhau với JSON.

JSONPath: truy vấn dữ liệu JSON mà không cần phân tích thủ công

JSONPath giúp lấy ra giá trị cần thiết từ một JSON lớn chỉ bằng một biểu thức thay vì duyệt thủ công như thế nào.

JSON Schema: cách mô tả và xác thực cấu trúc của JSON

JSON Schema giúp tự động kiểm tra xem dữ liệu có khớp với hợp đồng mong đợi hay không như thế nào.

JSON Flatten: biến cấu trúc lồng nhau thành danh sách phẳng

JSON lồng nhau sâu biến thành danh sách phẳng các khóa như user.address.city ra sao.

JSON Sort Keys: vì sao cần sắp xếp khóa của object

Vì sao thứ tự khóa JSON không được quy định, nhưng sắp xếp vẫn hữu ích trong thực tế.

JSON Repair: vì sao JSON bị hỏng và cách sửa

Nguyên nhân phổ biến khiến JSON "hỏng" và những gì sửa tự động có thể và không thể khắc phục.

Mock JSON Generator: dữ liệu giả dùng để làm gì

Dữ liệu giả giúp bắt đầu xây dựng giao diện trước khi backend sẵn sàng như thế nào.

JSON ↔ YAML/CSV/XML/TOML: khi nào và vì sao cần chuyển đổi

Dữ liệu nào bị mất khi chuyển JSON sang CSV, và vì sao YAML cùng TOML phổ biến cho tệp cấu hình.