logo
GeekFormat
Compare 1
Original JSON
1{
2 "name": "GeekFormat",
3~ "description": "面向开发者的免费在线工具集",
4~ "version": "1.0.0",
5 "features": [
6 "formatting",
7 "validation",
8~ "diff"
 
9 ],
10 "author": {
11 "name": "GeekFormat",
12 "url": "https://geekformat.com"
13 },
14 "stats": {
15~ "tools": 80,
16~ "languages": 18
17 },
18~ "active": true
19}
+1~6

Công cụ JSON Diff trực tuyến miễn phí. So sánh hai đối tượng JSON cạnh nhau với các trường được thêm, xóa và sửa đổi được tô sáng. Tự động định dạng trước khi thực hiện so sánh từng dòng và từng ký tự, với số liệu thống kê thời gian thực cho các phần thêm, xóa và sửa đổi. Cung cấp cả chế độ xem văn bản và ngữ nghĩa. Lý tưởng cho gỡ lỗi tích hợp API, so sánh phiên bản tệp cấu hình và khắc phục sự cố dữ liệu thử nghiệm tự động.

Đề xuất Liên quan

Trường hợp sử dụng

  • So sánh sự khác biệt giữa dữ liệu phản hồi thực tế và dữ liệu Mock mong đợi trong quá trình tích hợp API
  • So sánh các thay đổi phiên bản trong tệp cấu hình JSON trên các môi trường khác nhau (phát triển/thử nghiệm/sản xuất)
  • Nhanh chóng khắc phục sự cố không nhất quán giữa dữ liệu phản hồi và đường cơ sở kiểm định trong thử nghiệm tự động
  • So sánh thay đổi cấu trúc phản hồi giữa phiên bản cũ và mới sau khi nâng cấp API của bên thứ ba
  • So sánh các thay đổi trong cùng một cấu hình hoặc mô hình dữ liệu trước và sau khi sửa đổi trong quá trình Xem lại mã
  • So sánh các phản hồi JSON từ yêu cầu bình thường so với yêu cầu bất thường khi khắc phục sự cố sản xuất
  • Xác minh tính nhất quán giữa dữ liệu nguồn và dữ liệu đích trong quá trình đồng bộ hóa dữ liệu

Tính năng

  • So sánh khác biệt sâu: Tự động định dạng trước, sau đó thực hiện so sánh đệ quy từng dòng, từng ký tự, xác định chính xác các phần thêm, xóa và sửa đổi
  • Tô sáng trực quan: Bảng màu ba màu đỏ/xanh lá cây/vàng đánh dấu rõ ràng các phần xóa, thêm và sửa đổi, với cuộn đồng bộ trái-phải
  • Tô sáng cấp ký tự: Trong các dòng đã sửa đổi, các ký tự thay đổi cụ thể được tô sáng thêm để định vị chi tiết hơn
  • Tự động định dạng: Làm đẹp thống nhất JSON ở cả hai phía trước khi so sánh, tự động loại bỏ nhiễu từ sự khác biệt thụt lề và khoảng trắng
  • Chế độ xem kép Văn bản/Ngữ nghĩa: So sánh văn bản từng dòng hoặc so sánh ngữ nghĩa cấu trúc, có thể chuyển đổi chỉ với một cú nhấp chuột khi cần
  • Thống kê khác biệt: Thống kê thời gian thực ở dưới cùng cho thêm/xóa/sửa, hiển thị 'Giống hệt nhau' khi khớp hoàn toàn
  • So sánh nhiều tab: So sánh đồng thời nhiều nhóm JSON mà không gây nhiễu
  • Chia sẻ và Hoán đổi: Tạo liên kết chia sẻ một cú nhấp, hoán đổi nội dung trái-phải một cú nhấp, sao chép một trong hai phía một cú nhấp
  • Quyền riêng tư và Bảo mật: Xử lý hoàn toàn cục bộ trong trình duyệt, không tải lên dữ liệu, an toàn để xử lý các phản hồi chứa bí mật

Cách Sử dụng

  1. Dán hai nội dung JSON vào các ô nhập liệu trái và phải tương ứng (công cụ sẽ tự động định dạng)
  2. Chọn Chế độ xem Văn bản hoặc Chế độ xem Ngữ nghĩa để xem các khác biệt được đánh dấu bằng tô sáng đỏ/xanh lá cây/vàng
  3. Sử dụng số liệu thống kê thêm/xóa/sửa đổi ở dưới cùng để xác nhận quy mô thay đổi
  4. Sao chép nội dung một cú nhấp hoặc tạo liên kết chia sẻ để cộng tác với người khác khắc phục sự cố

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

Làm thế nào để nhanh chóng tìm thấy sự khác biệt giữa hai tệp JSON?

Dán hai văn bản JSON vào các ô nhập liệu trái và phải tương ứng. Công cụ sẽ tự động định dạng chúng trước, sau đó thực hiện so sánh sâu từng dòng, từng ký tự. Nội dung mới được tô sáng màu xanh lá cây, nội dung bị xóa được tô sáng màu đỏ, các dòng đã sửa đổi hiển thị cả giá trị cũ và mới với các ký tự thay đổi được tô sáng, giúp bạn định vị ngay lập tức sự khác biệt dữ liệu.

Tôi có cần định dạng JSON thủ công trước khi so sánh không?

Không. Công cụ tự động phân tích cú pháp và định dạng thống nhất (thụt lề 2 khoảng trắng) JSON ở cả hai phía trước khi so sánh. Vì vậy, ngay cả khi hai JSON có thụt lề, khoảng trắng và xuống dòng hoàn toàn khác nhau, sẽ không có sự khác biệt vô nghĩa miễn là nội dung dữ liệu nhất quán. Điều này tự động loại bỏ nhiễu từ các ký tự khoảng trắng.

Sự khác biệt giữa Chế độ xem Văn bản và Chế độ xem Ngữ nghĩa là gì?

Chế độ xem Văn bản so sánh từng dòng sau khi định dạng, hiển thị trực quan các phần thêm, xóa và sửa đổi trên mỗi dòng, phù hợp để duyệt nhanh các thay đổi tổng thể. Chế độ xem Ngữ nghĩa tập trung hơn vào việc so sánh theo cấu trúc và trường của JSON, giúp bạn hiểu trường nào đã thay đổi từ góc độ ngữ nghĩa dữ liệu. Bạn có thể chuyển đổi giữa hai chế độ xem bất cứ lúc nào chỉ với một cú nhấp chuột.

Thứ tự khác biệt của các phần tử trong mảng có được đánh dấu là khác biệt không?

Có. Công cụ so sánh theo thứ tự nội dung đã định dạng, vì vậy thứ tự phần tử mảng khác nhau sẽ được hiển thị là khác biệt. Nếu bạn chỉ quan tâm đến tính nhất quán của nội dung bất kể thứ tự, chúng tôi khuyên bạn nên sử dụng tính năng 'Sắp xếp khóa' trong công cụ Định dạng JSON hoặc sắp xếp mảng trước khi so sánh, để tránh nhiễu do thứ tự gây ra.

Công cụ này phù hợp với những tình huống phát triển và thử nghiệm cụ thể nào?

Rất phù hợp cho các tình huống sau: 1) Tích hợp API: so sánh sự khác biệt giữa phản hồi API thực tế và dữ liệu Mock mong đợi; 2) Quản lý cấu hình: so sánh sự khác biệt tệp cấu hình trên các môi trường khác nhau (phát triển/sản xuất); 3) Thử nghiệm tự động: làm công cụ hỗ trợ kiểm định thử nghiệm để nhanh chóng khắc phục sự cố không nhất quán dữ liệu; 4) Nâng cấp phiên bản: so sánh thay đổi cấu trúc phản hồi trước và sau khi nâng cấp API của bên thứ ba.

Sự khác biệt giữa JSON Diff và Trình định dạng JSON là gì?

Trình định dạng JSON sắp xếp JSON khó đọc thành cấu trúc phân cấp dễ đọc, trong khi JSON Diff so sánh sự khác biệt giữa hai JSON. Cả hai thường được sử dụng cùng nhau: công cụ này thực sự đã có bước định dạng tích hợp sẵn, tự động làm đẹp cả hai phía trước khi so sánh, để bạn tập trung vào chính sự khác biệt.

Kết quả so sánh có thể được chia sẻ hoặc sao chép không?

Có. Công cụ hỗ trợ nén và mã hóa nội dung trái và phải hiện tại vào URL để tạo liên kết có thể chia sẻ. Người nhận có thể mở nó để xem cùng một tình huống so sánh mà không cần tải lên máy chủ. Bạn cũng có thể sao chép nội dung từ một trong hai phía chỉ với một cú nhấp chuột để xem lại mã hoặc theo dõi sự cố.

Tôi có thể so sánh nhiều nhóm cùng lúc không?

Có. Công cụ hỗ trợ so sánh nhiều tab. Bạn có thể dán các cặp JSON khác nhau vào các tab khác nhau để so sánh; các tab hoạt động độc lập mà không gây nhiễu lẫn nhau, thuận tiện cho việc đồng thời khắc phục sự khác biệt trên nhiều API hoặc cấu hình.

Việc so sánh có đếm số lượng thay đổi đã được thực hiện không?

Có. Thanh trạng thái dưới cùng hiển thị số lượng thời gian thực cho ba loại khác biệt: thêm, xóa và sửa đổi, để bạn có thể thấy quy mô của các thay đổi ngay lập tức. Nếu hai JSON hoàn toàn giống hệt nhau, thông báo 'Giống hệt nhau' sẽ được hiển thị.

Dữ liệu được so sánh có được tải lên máy chủ không?

Không. Tất cả định dạng và so sánh khác biệt chạy hoàn toàn cục bộ trong trình duyệt của bạn. Dữ liệu không bao giờ được tải lên bất kỳ máy chủ nào. An toàn ngay cả khi so sánh các phản hồi API chứa bí mật, mã thông báo hoặc quyền riêng tư của người dùng. Dữ liệu sẽ bị xóa khi bạn đóng trang.

Giới thiệu về JSON Diff (So sánh JSON)

JSON Diff là việc so sánh hai tập dữ liệu JSON để tìm các trường được thêm, xóa và sửa đổi giữa chúng. Trong phát triển hàng ngày, chúng ta thường cần biết 'chính xác thì hai JSON khác nhau ở đâu': cấu trúc phản hồi đã thay đổi gì trước và sau khi nâng cấp API, cấu hình ở hai môi trường khác nhau ở đâu, trường nào bị lệch giữa kết quả thực tế và đường cơ sở mong đợi trong thử nghiệm tự động. Việc kiểm tra thủ công từng dòng chậm và dễ bị lỗi; công cụ JSON Diff có thể tự động tô sáng các khác biệt.

So sánh khác biệt JSON thường theo hai cách tiếp cận. Một là 'khác biệt văn bản' (textual diff): sau khi định dạng JSON thành văn bản nhiều dòng chuẩn, thực hiện so sánh tương tự Git diff từng dòng, hiển thị trực quan các phần thêm, xóa và sửa đổi trên mỗi dòng. Cách khác là 'khác biệt cấu trúc/ngữ nghĩa' (structural diff): phân tích cú pháp JSON thành cấu trúc cây và so sánh từng giá trị và kiểu theo đường dẫn trường (ví dụ: user.address.city), không bị ảnh hưởng bởi thứ tự viết trường, thụt lề hoặc các yếu tố định dạng khác. Công cụ này cung cấp cả Chế độ xem Văn bản và Chế độ xem Ngữ nghĩa, có thể chuyển đổi khi cần.

Tại sao phải định dạng trước khi so sánh? Bởi vì cùng một dữ liệu có thể có định dạng hoàn toàn khác nhau (một dòng so với nhiều dòng, thụt lề 2 khoảng trắng so với 4 khoảng trắng). Nếu so sánh trực tiếp dưới dạng văn bản thô, sẽ xuất hiện nhiều 'khác biệt giả' do các biến thể định dạng gây ra. Công cụ này tự động phân tích cú pháp và định dạng thống nhất cả hai phía trước khi so sánh, do đó loại bỏ nhiễu khoảng trắng để bạn chỉ thấy các thay đổi dữ liệu thực sự có ý nghĩa.

Lưu ý rằng thứ tự khóa trong các đối tượng JSON không quan trọng về mặt ngữ nghĩa ({"a":1,"b":2} tương đương với {"b":2,"a":1}), nhưng thứ tự phần tử mảng thì có ý nghĩa ([1,2] khác với [2,1]). Do đó, khi bạn chỉ quan tâm đến tính nhất quán của nội dung mảng bất kể thứ tự, chúng tôi khuyên bạn nên sắp xếp mảng hoặc sắp xếp khóa trước khi so sánh, để tránh việc thay đổi thứ tự bị xác định nhầm là khác biệt.

Tất cả định dạng và so sánh trong công cụ này được thực hiện cục bộ trong trình duyệt; dữ liệu không bao giờ được tải lên máy chủ. Nó cũng hỗ trợ tô sáng cấp ký tự, đếm số lượng thêm/xóa/sửa đổi, so sánh đồng thời nhiều tab và chia sẻ tình huống so sánh qua URL, phù hợp cho các tình huống tích hợp API, so sánh cấu hình, kiểm định thử nghiệm và Xem lại mã.

Bảng tham chiếu nhanh Loại Khác biệt JSON

Khi so sánh hai JSON, các khác biệt thường được chia thành các loại sau. Hiểu chúng giúp bạn nhanh chóng xác định bản chất của các thay đổi.

Loại khác biệtDấu hiệuMô tả
Thêm (Added)+ Xanh láCác trường hoặc phần tử mảng xuất hiện trong phiên bản mới nhưng không có trong phiên bản cũ.
Xóa (Removed)− ĐỏCác trường hoặc phần tử mảng tồn tại trong phiên bản cũ nhưng đã bị xóa trong phiên bản mới.
Sửa đổi (Modified)~ VàngTrường vẫn tồn tại nhưng giá trị đã thay đổi; cả giá trị cũ và mới đều được hiển thị với các ký tự thay đổi được tô sáng.
Thay đổi kiểu~ VàngKiểu của giá trị trường đã thay đổi, ví dụ: từ số thành chuỗi, từ đối tượng thành mảng; đây là một loại sửa đổi.
Không thay đổiBình thườngCác dòng giống hệt nhau ở cả hai phía, không có đánh dấu đặc biệt.

Xử lý trước được đề xuất trước khi so sánh

Để có được kết quả so sánh rõ ràng và có ý nghĩa, bạn có thể muốn thực hiện xử lý trước sau đây khi thích hợp để tránh các khác biệt giả.

Tình huốngHành động được đề xuất
Thứ tự khóa khác nhauSắp xếp theo tên khóa trước khi so sánh (hoặc sử dụng Chế độ xem Ngữ nghĩa để so sánh ở cấp độ trường).
Thứ tự mảng không quan trọngSắp xếp mảng theo nội dung trước để tránh thay đổi thứ tự bị đánh dấu là khác biệt.
Thụt lề/khoảng trắng khác nhauKhông cần hành động nào; công cụ này tự động định dạng và chuẩn hóa bố cục.
Chứa ID số nguyên lớnĐảm bảo cả hai phía truyền số nguyên lớn dưới dạng chuỗi để tránh mất độ chính xác gây ra sự không khớp.
Một phía không hợp lệSử dụng công cụ Xác thực/Sửa chữa JSON để sửa thành JSON hợp lệ trước khi so sánh.

Privacy & Security

Tất cả định dạng JSON và so sánh khác biệt trong công cụ này chạy hoàn toàn cục bộ trong trình duyệt của bạn. Dữ liệu không bao giờ được tải lên bất kỳ máy chủ nào, cũng không được ghi lại hoặc lưu đệm từ xa. An toàn ngay cả khi so sánh các phản hồi API chứa bí mật, mã thông báo hoặc thông tin người dùng. Dữ liệu sẽ bị xóa khi bạn đóng hoặc làm mới trang.

Authoritative References

Troubleshooting

Dữ liệu trông giống nhau nhưng các khác biệt được báo cáo

Nguyên nhân phổ biến nhất là thứ tự phần tử mảng khác nhau, hoặc các khác biệt khó nhận thấy trong chuỗi (ví dụ: khoảng trắng toàn宽度/bán宽度, phân biệt chữ hoa/chữ thường, khoảng trắng cuối dòng, kết thúc dòng \r\n so với \n). Thử sắp xếp mảng hoặc khóa trước khi so sánh. Công cụ này đã tự động định dạng, thường loại bỏ các khác biệt giả do thụt lề và khoảng trắng thông thường gây ra.

Một phía báo lỗi phân tích cú pháp / không thể so sánh

Điều này có nghĩa là nội dung ở phía đó không phải là JSON hợp lệ (ví dụ: thiếu dấu ngoặc kép, dấu phẩy cuối, chứa chú thích, dấu ngoặc chưa đóng). Vui lòng sử dụng công cụ Xác thực/Sửa chữa JSON trước để sửa nó thành JSON hợp lệ, sau đó quay lại để so sánh.

Quá nhiều khác biệt, hầu hết mọi dòng đều được đánh dấu màu đỏ hoặc xanh lá cây

Điều này rất có thể là do thứ tự khóa hoặc thứ tự mảng giữa hai tập dữ liệu hoàn toàn khác nhau, gây ra sự lệch dòng từng dòng. Chúng tôi khuyên bạn nên chuẩn hóa thứ tự trước (sắp xếp các đối tượng theo tên khóa, sắp xếp mảng theo nội dung) trước khi so sánh, hoặc chuyển sang Chế độ xem Ngữ nghĩa để xem các trường thực sự thay đổi ở cấp độ trường.

Số lớn không khớp (ví dụ: chữ số cuối của ID khác nhau hoặc trở thành ký hiệu khoa học)

Số JSON được phân tích cú pháp dưới dạng số thực dấu phẩy động độ chính xác kép IEEE 754. Các số nguyên lớn vượt quá 2^53 (ID tuyết, số đơn hàng) sẽ mất độ chính xác, khiến cả hai phía trông giống nhau nhưng được phân tích cú pháp thành các giá trị khác nhau. Các số nguyên lớn nên được truyền dưới dạng chuỗi, ví dụ: "id": "9007199254740993".

Ký tự Trung Quốc hiển thị dưới dạng \uXXXX gây ra sự không nhất quán rõ ràng

Khi một phía sử dụng ký hiệu thoát (\u4e2d\u6587) và phía còn lại sử dụng tiếng Trung thuần, chúng có thể trông khác nhau sau khi định dạng. Cả hai về mặt ngữ nghĩa giống hệt nhau nhưng khác nhau về văn bản, vì vậy chúng sẽ được đánh dấu là khác biệt. Bạn có thể thống nhất việc có thoát hay không ở phía tạo (ví dụ: ensure_ascii=False của Python).