Định dạng và kiểm tra JSON
Làm JSON dễ đọc hơn, kiểm tra cú pháp hoặc tạo phiên bản gọn. Hướng dẫn này giải thích thụt lề, sắp xếp khóa và lưu kết quả.
Thử mẫu được cung cấp
Tải order-options.json, một đơn hàng giả định có hai mặt hàng và tên trường bằng tiếng Anh. Đối tượng customer nhóm tên và thành phố; mảng items chứa CARD-02 rồi đến BOX-01. Mẫu có văn bản trong dấu ngoặc kép, số lượng và giá dạng số, giá trị boolean true và null cho ghi chú giao hàng trống. Các trường cố ý chưa được sắp xếp để bạn thấy tác dụng của tùy chọn sắp xếp.
Từng bước thực hiện
- Mở Định dạng và kiểm tra JSON. Dùng Tệp để mở order-options.json được cung cấp hoặc dán nội dung tệp vào Dữ liệu nhập.
- Đặt Thụt lề là 2 để dùng hai dấu cách mỗi cấp. Không chọn Sắp xếp khóa đối tượng trong lần chạy đầu tiên.
- Chọn Xử lý đầu vào. Công cụ kiểm tra cú pháp JSON trước khi hiển thị kết quả. Nếu báo lỗi, hãy dựa vào dòng và cột để tìm vấn đề, sửa dữ liệu đầu vào rồi thử lại.
- Đọc kết quả. Đối tượng customer và hai mặt hàng sẽ dễ theo dõi, với mỗi dòng là một trường hoặc phần tử danh sách. Các trường giữ thứ tự của mẫu khi chưa chọn sắp xếp.
- Chọn Tải kết quả để lưu formatted.json. Bạn cũng có thể dùng Sao chép văn bản để đưa kết quả sang trình soạn thảo khác.
- Mở tệp đã tải trong trình soạn thảo văn bản và so sánh với mẫu bằng các bước kiểm tra bên dưới. Sau đó thử những tùy chọn thụt lề và sắp xếp khác, chọn lại Xử lý đầu vào sau mỗi thay đổi.
Ví dụ trước và sau
Các ví dụ ngắn này dùng đối tượng customer từ order-options.json dưới dạng một tài liệu JSON nhỏ. So sánh cùng tên và thành phố trước và sau từng thiết lập. Phần tham chiếu tùy chọn ở cuối hiển thị toàn bộ đơn hàng.
Làm JSON dạng gọn dễ đọc hơn
Đặt Thụt lề là 2, không chọn Sắp xếp khóa đối tượng rồi chọn Xử lý đầu vào. Kết quả thêm ngắt dòng và hai dấu cách mỗi cấp, đồng thời giữ thứ tự ban đầu của các trường.
Trước: dữ liệu đầu vào dạng gọn
{"customer":{"name":"Zoë","city":"Bergen"}}Sau: thụt lề hai dấu cách
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}Sắp xếp khóa trong một đối tượng
Giữ Thụt lề là 2, chọn Sắp xếp khóa đối tượng rồi chọn Xử lý đầu vào. Trong customer, city giờ đứng trước name. Cả hai giá trị không đổi.
Trước: thứ tự khóa ban đầu
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}Sau: khóa đối tượng đã sắp xếp
{
"customer": {
"city": "Bergen",
"name": "Zoë"
}
}Làm JSON gọn lại
Chọn Thu gọn trong Thụt lề, không chọn Sắp xếp khóa đối tượng rồi chọn Xử lý đầu vào. Dấu cách định dạng và ngắt dòng bị loại bỏ; văn bản và thứ tự trường không đổi.
Trước: thụt lề hai dấu cách
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}Sau: Thu gọn
{"customer":{"name":"Zoë","city":"Bergen"}}Chọn kiểu thụt lề
| Lựa chọn | Tác dụng |
|---|---|
| 2 | Dùng hai dấu cách cho mỗi cấp lồng nhau. Đây là thiết lập trong các bước chính. |
| 4 | Dùng bốn dấu cách cho mỗi cấp lồng nhau, làm các đối tượng và mảng lồng nhau nổi bật hơn. |
| ↹ | Dùng một ký tự tab cho mỗi cấp lồng nhau. Độ rộng hiển thị của tab phụ thuộc vào trình soạn thảo văn bản. |
| Thu gọn | Loại bỏ dấu cách định dạng và ngắt dòng. Dấu cách trong văn bản có dấu ngoặc kép vẫn là một phần của văn bản đó. Chọn tùy chọn này để có kết quả gọn, rồi chọn Xử lý đầu vào. |
Thay đổi dữ liệu đầu vào hoặc tùy chọn sẽ xóa kết quả trước đó. Chọn lại Xử lý đầu vào để tạo kết quả với thiết lập mới. Công cụ đọc vùng đầu vào mỗi lần; không tự đưa kết quả trước đó trở lại vùng này.
Sắp xếp khóa đối tượng
Không chọn Sắp xếp khóa đối tượng để giữ thứ tự trường ban đầu của mỗi đối tượng. Khi được chọn, công cụ sắp xếp khóa theo thứ tự văn bản có phân biệt chữ hoa và chữ thường trong toàn bộ tài liệu, kể cả đối tượng nằm trong mảng. Các phần tử mảng vẫn giữ trình tự ban đầu.
- Giữ Thụt lề là 2, chọn Sắp xếp khóa đối tượng rồi chọn Xử lý đầu vào.
- Các khóa cấp cao nhất giờ có thứ tự customer, deliveryNote, items, order và paid. Trong customer, city đứng trước name. Trong mỗi mặt hàng, price đứng trước quantity và sku.
- Mảng items vẫn chứa CARD-02 rồi đến BOX-01. Sắp xếp khóa không sắp xếp mặt hàng theo sku hoặc giá.
Sao chép, tải xuống và bắt đầu lại
| Lựa chọn | Tác dụng |
|---|---|
| Sao chép văn bản | Sao chép kết quả hiện tại dưới dạng văn bản. Nếu không thể sao chép, công cụ chọn kết quả để bạn có thể tự sao chép. |
| Tải kết quả | Lưu kết quả hiện tại thành formatted.json. Tên này dùng cho kết quả có định dạng, dạng gọn và đã sắp xếp; hãy đổi tên tệp nếu muốn giữ nhiều phiên bản. |
| In kết quả | Mở hộp thoại in của trình duyệt cho văn bản kết quả. |
| Nạp ví dụ | Thay dữ liệu đầu vào bằng ví dụ có sẵn của công cụ và xử lý theo thiết lập hiện tại. Ví dụ này khác với order-options.json trong hướng dẫn. |
| Xóa tất cả | Xóa dữ liệu đầu vào, tệp đã chọn và kết quả. Các lựa chọn thụt lề và sắp xếp được giữ nguyên. |
Kiểm tra JSON đã tải xuống
- Mở formatted.json trong trình soạn thảo văn bản. Xác nhận đơn hàng là ORD-1042, khách hàng là Zoë ở Bergen và có hai mặt hàng.
- Kiểm tra giá trị và kiểu dữ liệu: quantity là số 2 rồi đến 1, giá giữ nguyên 19.50 và 5.00, paid là boolean true không có dấu ngoặc kép, deliveryNote là null không có dấu ngoặc kép. Tên và mã mặt hàng trong dấu ngoặc kép vẫn là chuỗi.
- Sau khi thử Sắp xếp khóa đối tượng, kiểm tra thứ tự trường nêu trên và xác nhận CARD-02 vẫn đứng trước BOX-01 trong mảng items.
- Thử Thu gọn và Xử lý đầu vào. Dán kết quả trở lại Dữ liệu nhập, đặt Thụt lề là 2 rồi chọn lại Xử lý đầu vào. So sánh giá trị và thứ tự mặt hàng với mẫu ban đầu; các tùy chọn định dạng phải giữ nguyên chúng.
Câu hỏi và khắc phục sự cố
Vì sao công cụ báo JSON không hợp lệ?
Kiểm tra dòng và cột được báo, cùng trường ngay trước vị trí đó. Khóa và văn bản cần dấu ngoặc kép; trường cần dấu phẩy và dấu hai chấm; ngoặc vuông và ngoặc nhọn phải được đóng. Sửa dữ liệu đầu vào rồi chọn lại Xử lý đầu vào. Việc kiểm tra chỉ xét cú pháp JSON, nên kết quả hợp lệ vẫn có thể thiếu trường mà ứng dụng yêu cầu.
Có thể dùng chú thích hoặc dấu phẩy cuối không?
Xóa chú thích và dấu phẩy ngay trước ngoặc vuông hoặc ngoặc nhọn đóng. Chúng không hợp lệ trong JSON. Công cụ định dạng yêu cầu dữ liệu đầu vào hợp lệ và không tự sửa lỗi.
Cảnh báo khóa lặp có nghĩa gì?
Thông báo “Các khóa lặp được giữ lại. Một số trình đọc loại bỏ khóa lặp.” có nghĩa một khóa xuất hiện nhiều lần trong cùng đối tượng. Công cụ định dạng giữ các mục đó và cảnh báo bạn. Kiểm tra nguồn, chọn giá trị cần dùng và xóa mục thừa; ứng dụng khác có thể chỉ giữ một mục.
Vì sao tệp không mở hoặc không xử lý được?
Giới hạn đầu vào là 2 MiB, tức 2.097.152 byte. Tệp văn bản cục bộ phải dùng UTF-8. Nếu công cụ báo dữ liệu quá phức tạp, hãy giảm độ lồng nhau hoặc số mục. Chia dữ liệu lớn thành các tài liệu JSON nhỏ hơn nhưng hoàn chỉnh, không cắt giữa một đối tượng hoặc mảng.
Vì sao số dài thay đổi trong ứng dụng khác?
Mẫu độ chính xác riêng bên dưới chứa 9007199254740993 và 0.10000000000000001. Công cụ định dạng này giữ chính xác phần văn bản của các số với mọi lựa chọn thụt lề và sắp xếp. Định dạng exact-numbers.json rồi so sánh kết quả với exact-numbers-formatted.json trong trình soạn thảo văn bản. Ứng dụng nhập kết quả vẫn có thể làm tròn số, nên hãy xác nhận ứng dụng hỗ trợ độ chính xác bạn cần. Mã có số 0 ở đầu như 00123 phải là chuỗi trong dấu ngoặc kép trong JSON.
Định dạng có khôi phục chữ số đã bị làm tròn không?
Định dạng không thể khôi phục chữ số đã bị làm tròn hoặc xóa trước khi văn bản đến công cụ. Quay lại nguồn ban đầu và xuất lại giá trị đầy đủ. Nếu giá trị là mã định danh thay vì số lượng, dùng chuỗi có thể giúp ứng dụng nhận giữ được các chữ số.
Tùy chọn: so sánh mẫu và kết quả tham chiếu
Các ví dụ mã và tệp tải xuống này được tạo từ order-options.json bằng cùng công cụ định dạng trên trang công cụ. Kết quả tham chiếu có định dạng và dạng gọn tắt sắp xếp khóa; kết quả đã sắp xếp dùng thụt lề hai dấu cách và bật sắp xếp.
Mẫu ban đầu
{"order":"ORD-1042", "customer": {"name":"Zoë","city":"Bergen"}, "items":[{"sku":"CARD-02", "quantity":2,"price":19.50},{"sku":"BOX-01","quantity":1, "price":5.00}], "paid":true, "deliveryNote":null}
Hai dấu cách; thứ tự khóa ban đầu
{
"order": "ORD-1042",
"customer": {
"name": "Zoë",
"city": "Bergen"
},
"items": [
{
"sku": "CARD-02",
"quantity": 2,
"price": 19.50
},
{
"sku": "BOX-01",
"quantity": 1,
"price": 5.00
}
],
"paid": true,
"deliveryNote": null
}Thu gọn; thứ tự khóa ban đầu
{"order":"ORD-1042","customer":{"name":"Zoë","city":"Bergen"},"items":[{"sku":"CARD-02","quantity":2,"price":19.50},{"sku":"BOX-01","quantity":1,"price":5.00}],"paid":true,"deliveryNote":null}Hai dấu cách; khóa đối tượng đã sắp xếp
{
"customer": {
"city": "Bergen",
"name": "Zoë"
},
"deliveryNote": null,
"items": [
{
"price": 19.50,
"quantity": 2,
"sku": "CARD-02"
},
{
"price": 5.00,
"quantity": 1,
"sku": "BOX-01"
}
],
"order": "ORD-1042",
"paid": true
}| Tệp tham chiếu | Thiết lập | Byte |
|---|---|---|
| order-formatted.json | Hai dấu cách; thứ tự khóa ban đầu | 300 |
| order-minified.json | Thu gọn; thứ tự khóa ban đầu | 193 |
| order-sorted.json | Hai dấu cách; khóa đối tượng đã sắp xếp | 300 |
Đây là kết quả văn bản thực tế, không phải ảnh chụp giao diện. Mã có thể xuống dòng để vừa màn hình. Tên tệp tham chiếu giúp phân biệt các ví dụ; bản thân công cụ tải mọi phiên bản dưới tên formatted.json.