Cách sử dụng
- Dán YAML vào ô nhập, hoặc thử ví dụ.
- Chọn thụt lề 2 hoặc 4 dấu cách.
- Sao chép JSON hoặc tải xuống dưới dạng tệp .json.
Cách hoạt động
YAML được phân tích bằng thư viện yaml mã nguồn mở dùng lược đồ lõi YAML 1.2, đúng như điều các công cụ hiện đại mong đợi: yes, no, on và off vẫn là chuỗi, chỉ true và false là boolean. Anchor (&name) và alias (*name) được mở rộng, còn merge key << được áp dụng; số lần mở rộng alias bị giới hạn, vì vậy các tài liệu cố tình bùng nổ sẽ bị từ chối thay vì làm treo trang.
Tệp có nhiều tài liệu phân tách bằng --- trở thành một mảng JSON với mỗi phần tử là một tài liệu. Chú thích, anchor và tag không có dạng tương đương trong JSON nên bị loại bỏ; khóa giữ nguyên thứ tự. Dấu thời gian vẫn là chuỗi. Số nguyên có hơn khoảng 15 chữ số mất độ chính xác, như với mọi JSON được xử lý trong JavaScript.
Nếu YAML không hợp lệ, lỗi đầu tiên được hiển thị kèm dòng và cột, ví dụ như tab dùng để thụt lề hoặc thiếu ngoặc đóng. Để chuyển đổi theo chiều ngược lại, hãy dùng JSON sang YAML, hoặc bộ chuyển đổi hai chiều JSON ⇄ YAML.
Ví dụ
Tệp CI có anchor
Danh sách job tái sử dụng khối defaults bằng <<: *defaults trở thành JSON với các giá trị mặc định được sao chép vào từng job, nhờ đó bạn thấy chính xác từng job nhận được gì.
Tệp Kubernetes nhiều tài liệu
Tệp có Deployment và Service phân tách bằng --- trở thành một mảng JSON gồm hai đối tượng, sẵn sàng cho kubectl hoặc jq.
Câu hỏi thường gặp
Tại sao yes vẫn là chuỗi?
YAML 1.2, được dùng ở đây và bởi hầu hết công cụ hiện nay, chỉ coi true và false là boolean. Các trình phân tích YAML 1.1 cũ biến yes, no, on và off thành boolean, gây ra nhiều lỗi.
Điều gì xảy ra với chú thích?
JSON không có chú thích, vì vậy chúng bị loại bỏ. Bản thân dữ liệu không thay đổi.
Có giới hạn kích thước không?
Chỉ giới hạn bởi bộ nhớ trình duyệt của bạn. Các tệp lớn được chuyển đổi sau một khoảng dừng ngắn trong khi bạn nhập, để trang vẫn phản hồi mượt.
Quyền riêng tư
Việc chuyển đổi chạy hoàn toàn trong trình duyệt của bạn. YAML và JSON của bạn không bị tải lên hoặc lưu trữ.