Định dạng JSON
Dán một khối dữ liệu JSON – có thể là dạng được rút gọn, đã sử dụng ký hiệu đặc biệt hoặc nguyên văn từ dòng nhật ký – và hiển thị kết quả với kích thước lõm phù hợp theo lựa chọn của bạn. Hệ thống sẽ kiểm tra tính hợp lệ ngay khi phân tích và hiển thị chính xác vị trí hàng và cột của mọi lỗi. Bạn có thể sắp xếp các khóa đối tượng theo thứ tự bảng chữ cái tùy chọn; điều này giúp việc so sánh sự khác biệt giữa hai phản hồi API trở nên dễ đọc hơn nhiều.
Cách định dạng JSON
-
1
Dán JSON
Dù được rút gọn, đưa vào một chuỗi hay được bao bọc trong hàm hồi quy JSONP, bộ phân tích vẫn có thể xử lý mọi trường hợp này một cách hiệu quả.
-
2
Chọn vùng đánh dấu
2 khoảng trắng, 4 khoảng trắng, một tab hoặc dạng gọn (một dòng duy nhất dành cho tải lượng nhỏ).
-
3
Chuyển đổi thứ tự các phím sắp xếp
Sắp xếp các khóa đối tượng theo thứ tự bảng chữ cái để dễ dàng so sánh hai phản hồi hơn.
-
4
Sao chép hoặc tải xuống
Sao chép một cú nhấp vào bảng nhớ tạm hoặc lưu dưới dạng tệp `.json`.
Những chức năng mà công cụ định dạng thực hiện
- Dữ liệu đầu vào được thu nhỏ:
{"a":1,"b":[1,2,3]}được lồng indent đúng cách. - JSON đã được giải mã trong chuỗi văn bản: một chuỗi JSON chứa giá trị
"{\"nested\":true}"có thể được giải mã và định dạng lại. - Các callback JSONP: Tên
callback({...})được rút gọn thành{...}. - BOM và khoảng trắng phía trước: được loại bỏ tự động.
- Bình luận: Các đối tượng dạng JSONC
//và/* */được chấp nhận trong chế độ “lỏng lẻo”, nhưng sẽ bị loại bỏ khỏi kết quả đầu ra (JSON nghiêm ngặt không chứa bình luận).
Tại sao nên sử dụng định dạng JSON đẹp mắt
- Diffing: một tài liệu JSON dạng một dòng chứa hàng nghìn khóa không thể đọc được trong
git diff; khi in ra, mỗi khóa sẽ xuất thành một dòng riêng biệt. - Sửa lỗi: Các cấu trúc lồng nhau dễ dàng hơn trong việc truy cập trực quan nhờ tính năng lồng dấu.
- Tài liệu hướng dẫn: Các ví dụ về API luôn cần được định dạng đúng cách, sắp xếp bài bản và giữ tính nhất quán trong mọi phiên phát hành mới.
- _configs: Các tệp cấu hình định dạng JSON nên được trình bày rõ ràng trong kho mã để dễ đọc; thời gian thực có thể phân tích cả hai định dạng này.
Các quy ước về indenting
| Bối cảnh | Lồng trống tiêu chuẩn |
|---|---|
npm package.json |
2 khoảng trắng |
| AWS CloudFormation | 2 không gian |
| Java/DotNet cũ | 4 khoảng trắng |
| Cấu hình trong VCS | 2 khoảng trắng (độ nhất quán trên toàn dự án là yếu tố quan trọng nhất) |
Việc sắp xếp các khóa gây nhiều tranh cãi: phương pháp này giúp các bản so sánh (diff) trở nên rõ ràng hơn, nhưng lại làm thay đổi thứ tự các tệp cấu hình chuẩn trên đĩa. Hãy chọn một quy ước cho dự án và tuân thủ nghiêm túc nó.
Các lỗi xác thực mà bạn sẽ thấy
| Lỗi | Sửa |
|---|---|
Unexpected token ' at position X |
Bạn đã sử dụng dấu ngoặc đơn; hãy thay bằng dấu ngoặc kép |
Unexpected end of JSON input |
Thiếu dấu ngoặc đóng hoặc khung ngoặc |
Unexpected token , at position X |
dấu phẩy nối sau; hãy loại bỏ nó |
Unexpected token a at position X |
Chìa khóa không được định nghĩa hoặc giá trị văn bản NaN/undefined |
Duplicate key "foo" (chế độ nhạy cảm thấp) |
Tiêu chuẩn JSON cho phép điều này; hầu hết các bộ phân tích đều giữ lại giá trị cuối cùng |
Các lỗi phổ biến
- Việc sao chép dữ liệu JSON chứa các thành phần HTML: Tập dữ liệu
"sẽ không thể được phân tích; hãy giải mã trước. – Kết hợp giữa cách xử lý nghiêm ngặt và linh hoạt: Chỉ sử dụng phương thức phân tích linh hoạt khi kiểm tra; tuyệt đối không lưu các tệp JSON được xử lý linh hoạt vào cấu hình sản xuất. - In lại một tệp đã được in đẹp theo một phong cách khác. Bộ định dạng sẽ thực hiện việc này một cách thuận tiện, nhưng bạn sẽ tạo ra một bản so sánh thay đổi có nhiều điểm khác biệt rõ rệt.
Câu hỏi thường gặp
Không. Các thao tác phân tích và định dạng đều được thực hiện trực tiếp trong trình duyệt của bạn. Nội dung sẽ không bao giờ rời khỏi tab hiện tại – rất an toàn khi dán các phản hồi API chứa token, thông tin cấu hình nội bộ hoặc dữ liệu thử nghiệm.
Bộ định dạng sẽ in ra các đối tượng JSON hợp lệ dưới dạng đẹp mắt. Bộ kiểm tra sẽ so sánh dữ liệu với một Schema JSON. Cả hai đều thực hiện bước phân tích dữ liệu, nhưng việc xác thực là một bước riêng biệt – nhằm hỏi: “Liệu dữ liệu này có phù hợp với schema của tôi không?” chứ không chỉ đơn thuần kiểm tra “Đây có phải là JSON hợp lệ không?”.
Đúng vậy. Tùy chọn “sort keys” sắp xếp tất cả các khóa đối tượng ở mọi cấp độ lồng ghép một cách đệ quy. Các mảng vẫn giữ thứ tự ban đầu vì thứ tự của mảng có ý nghĩa ngữ nghĩa trong JSON.
Hạn chế bởi bộ nhớ trình duyệt: trên các thiết bị hiện đại, dung lượng tối đa khoảng 50 MB là đủ; nếu vượt quá mức này, hãy sử dụng lệnh jq từ dòng lệnh – phương thức này sẽ phát trực tiếp thay vì tải toàn bộ tài liệu vào hệ thống.