YAML sang Trình chuyển đổi JSON
Chuyển đổi YAML sang JSON nhanh chóng và an toàn. Hoàn hảo cho các tập tin cấu hình và phân tích dữ liệu.
Chuyển đổi YAML sang JSON nhanh chóng và an toàn. Hoàn hảo cho các tập tin cấu hình và phân tích dữ liệu.
YAML và JSON là các định dạng có liên quan chặt chẽ với nhau — JSON về mặt kỹ thuật là một tập hợp con nghiêm ngặt của YAML 1.2 — và việc chuyển đổi giữa chúng thường rất đơn giản. YAML bổ sung các tính năng thân thiện với con người mà JSON thiếu: nhận xét, chuỗi nhiều dòng không thoát, tham chiếu neo và bí danh, trích dẫn linh hoạt hơn và cấu trúc dựa trên thụt lề giống với bố cục tài liệu tự nhiên. Điều này làm cho YAML trở thành lựa chọn phổ biến cho các tệp cấu hình (tệp kê khai Kubernetes, quy trình làm việc của GitHub Actions, Docker Compose) trong khi JSON thống trị tải trọng API.
Việc chuyển đổi YAML sang JSON thường có nghĩa là từ bỏ các tính năng bổ sung thân thiện với con người của YAML để đổi lấy một định dạng mà máy phân tích cú pháp dễ dàng hơn và đó là ngôn ngữ chung của API HTTP. Nhận xét bị loại bỏ (JSON không có). Tham chiếu neo được giải quyết thành giá trị tham chiếu của chúng. Chuỗi nhiều dòng thu gọn thành chuỗi JSON tiêu chuẩn với các dòng mới được nhúng.
Trình chuyển đổi này phân tích cú pháp YAML bằng js-yaml, thư viện YAML được sử dụng rộng rãi nhất trong JavaScript. Đầu ra được tạo bằng JSON.stringify với thụt lề tùy chọn. Việc chuyển đổi xử lý tất cả cú pháp YAML 1.2 tiêu chuẩn bao gồm kiểu luồng, kiểu khối, vô hướng, trình tự, ánh xạ, neo, bí danh và các loại thẻ tiêu chuẩn.
Hầu hết các API và nhiều môi trường lập trình đều yêu cầu JSON. Các tệp cấu hình được viết bằng YAML cần được chuyển đổi sang JSON khi tích hợp với mã hoặc dịch vụ chỉ chấp nhận JSON. Công cụ dành cho JSON cũng phong phú hơn: jq, Đường dẫn JSON, Lược đồ JSON và một hệ sinh thái rộng lớn gồm các trình xác nhận và trình chuyển đổi đều sử dụng đầu vào JSON.
JSON cũng rõ ràng theo cách mà YAML không rõ ràng. Tính linh hoạt của YAML tạo ra những bất ngờ về phân tích cú pháp — các chuỗi như phân tích cú pháp 'no' dưới dạng boolean false trong YAML 1.1, chuỗi phiên bản phân tích cú pháp dưới dạng float, lỗi thụt lề tạo ra các thay đổi cấu trúc thầm lặng. Việc chuyển đổi sang JSON sẽ đóng băng dữ liệu thành một dạng ít mơ hồ hơn.
Dán YAML, nhận JSON.
js-yaml triển khai YAML 1.2 với sự hỗ trợ tùy chọn cho các điểm kỳ quặc của YAML 1.1 (vấn đề 'không' là sai, số bát phân không có tiền tố 0o). Trình phân tích cú pháp tạo ra một cây đối tượng JavaScript bằng cách sử dụng các kiểu gốc: số, chuỗi, boolean, null, mảng và các đối tượng đơn giản.
JSON.stringify tuần tự hóa cây đối tượng thành JSON. Thụt lề tùy chọn tạo ra kết quả in đẹp; không có nó thì kết quả là JSON một dòng nhỏ gọn. Các giá trị đặc biệt (NaN, Infinity, không xác định) không phải là JSON hợp lệ; bộ chuyển đổi buộc chúng thành null nếu có.
Các trường hợp cạnh: Dấu thời gian YAML trở thành chuỗi ISO-8601 trong JSON. Dữ liệu nhị phân YAML (được mã hóa base64) trở thành một chuỗi. Các neo và bí danh được phân giải thành các giá trị trùng lặp trong JSON vì JSON không có cú pháp tham chiếu.