Công cụ này làm gì
JSON5 là phần mở rộng của JSON dành cho các tệp do người viết tay. Nó cho phép chú thích, dấu phẩy cuối, khóa đối tượng không có ngoặc kép, chuỗi trong ngoặc đơn và vài cách viết số tiện hơn. Babel, một số bundler và nhiều ứng dụng chấp nhận JSON5 hoặc JSONC (JSON có chú thích, được tsconfig.json và phần cài đặt của VS Code sử dụng) làm định dạng cấu hình.
Tuy nhiên, nhiều trình phân tích, API và ngôn ngữ lập trình chỉ chấp nhận JSON chặt chẽ. Công cụ này đọc JSON5 hoặc JSONC và xuất JSON chuẩn mà mọi trình phân tích đều chấp nhận: mọi khóa trong ngoặc kép, không có chú thích, không có dấu phẩy cuối và số được viết ở dạng thập phân.
Cách dùng
- Dán JSON5 hoặc JSONC, tải lên tệp
.json5,.jsonchoặc.json, hoặc bấm Ví dụ. - Chọn Thụt lề: 2 hoặc 4 dấu cách, hoặc Thu gọn để xuất trên một dòng.
- Chọn cách xử lý
InfinityvàNaN: chuyển thànhnull, chuyển thành chuỗi hoặc báo lỗi. - Sao chép hoặc tải JSON xuống.
Nếu đầu vào có lỗi cú pháp, thông báo sẽ cho biết dòng và cột để bạn chuyển thẳng đến đó. JSON thông thường cũng là JSON5 hợp lệ, vì vậy bạn có thể dùng công cụ để kiểm tra tệp có phân tích được không và thụt lề lại.
Ví dụ
Cấu hình JSON5 sau:
// Server settings
{
host: 'localhost',
port: 0x1F90, // 8080
ratio: .5,
tags: ['api', 'v2',],
}
sẽ thành JSON chặt chẽ như sau:
{
"host": "localhost",
"port": 8080,
"ratio": 0.5,
"tags": [
"api",
"v2"
]
}
Chú thích bị xóa, khóa và chuỗi được đặt trong ngoặc kép, số thập lục phân và số thập phân thiếu phần nguyên được viết lại ở dạng thập phân, còn dấu phẩy cuối biến mất.
Những gì được chuyển đổi
- Xóa chú thích dòng
//và chú thích khối/* */. - Khóa không có ngoặc kép như
portvà chuỗi trong ngoặc đơn như'localhost'được chuyển sang ngoặc kép. - Chuỗi nối dòng bằng dấu gạch chéo ngược ở cuối dòng được gộp thành một chuỗi.
- Số thập lục phân (
0xFF), dấu chấm thập phân ở đầu hoặc cuối (.5,5.) và dấu cộng tường minh (+3) được chuyển thành số thập phân thông thường. - Bỏ dấu phẩy cuối trong đối tượng và mảng.
- Nếu một khóa xuất hiện hai lần, giá trị cuối cùng được dùng, giống như JavaScript.
Câu hỏi thường gặp
› JSON5 và JSONC khác nhau thế nào?
JSONC là JSON có thêm chú thích (và trong VS Code còn cho phép dấu phẩy cuối). JSON5 đi xa hơn: khóa không có ngoặc kép, chuỗi trong ngoặc đơn, chuỗi nhiều dòng, số thập lục phân, dấu chấm thập phân ở đầu hoặc cuối số, Infinity và NaN. JSON5 bao trùm JSONC nên công cụ này đọc được cả hai.
› Chú thích có được giữ lại không?
Không. JSON chuẩn không có cú pháp chú thích nên chúng bị xóa. Nếu cần giữ, hãy lưu tệp JSON5 làm bản gốc và tạo JSON từ đó.
› Infinity và NaN được xử lý ra sao?
JSON chặt chẽ không biểu diễn được chúng. Mặc định chúng thành null, giống JSON.stringify của JavaScript. Bạn cũng có thể chuyển chúng thành chuỗi hoặc báo lỗi kèm đường dẫn chính xác.
› Dữ liệu của tôi có bị tải lên không?
Không. Việc phân tích và chuyển đổi diễn ra hoàn toàn trong trình duyệt, nên tệp cấu hình chứa bí mật không bao giờ rời khỏi thiết bị của bạn.