JSON sang Trình chuyển đổi YAML
Chuyển đổi cấu trúc JSON sang định dạng YAML sạch. Lý tưởng cho các bảng kê khai Kubernetes và cấu hình đám mây.
Chuyển đổi cấu trúc JSON sang định dạng YAML sạch. Lý tưởng cho các bảng kê khai Kubernetes và cấu hình đám mây.
Chuyển từ JSON sang YAML chủ yếu là làm cho dữ liệu dễ đọc hơn đối với con người. Cả hai định dạng đều mô tả cùng loại cấu trúc — đối tượng/bản đồ, mảng/chuỗi, vô hướng — nhưng cú pháp dựa trên thụt lề, trích dẫn tùy chọn và hỗ trợ nhận xét của YAML giúp quét và chỉnh sửa bằng tay dễ dàng hơn. Các tệp cấu hình là trường hợp sử dụng chuẩn: bảng kê khai Kubernetes, quy trình làm việc CI, sổ tay Ansible và hàng tá công cụ khác đã chọn YAML cụ thể vì người chỉnh sửa chính của chúng là con người.
Trình chuyển đổi này sử dụng js-yaml để tuần tự hóa một đối tượng JSON được phân tích cú pháp thành YAML. Kết quả duy trì chính xác cấu trúc của dữ liệu trong khi áp dụng các quy ước YAML: thụt lề để lồng, danh sách cho mảng, cặp khóa-giá trị cho thuộc tính đối tượng. Việc trích dẫn kép nghiêm ngặt của JSON được thoải mái; chỉ các chuỗi chứa các ký tự đặc biệt hoặc trông giống các loại khác mới được trích dẫn ở đầu ra.
Chuyển đổi là bảo toàn thông tin ngoại trừ khi YAML bổ sung tính biểu cảm mà JSON không có. Không thể xây dựng lại nhận xét (JSON không có). Tham chiếu neo và bí danh có thể nén các cấu trúc lặp lại nhưng không được tạo tự động; đầu ra mở rộng tất cả các tham chiếu nội tuyến.
YAML dễ đọc hơn đáng kể so với JSON khi con người chỉnh sửa cấu hình. Thụt lề thay thế dấu ngoặc nhọn, dấu ngoặc kép là tùy chọn cho các chuỗi đơn giản và nhận xét có thể ghi lại các cài đặt không rõ ràng. Đối với các tệp mà con người duy trì - cấu hình ứng dụng, cơ sở hạ tầng dưới dạng mã, quy trình xây dựng - YAML hầu như luôn là định dạng đích phù hợp.
Công cụ cơ sở hạ tầng hiện đại cực kỳ ủng hộ YAML. Kubernetes, biểu đồ Helm, Ansible, GitHub Actions, GitLab CI, Docker Compose và nhiều công cụ khác thích hoặc yêu cầu YAML. Chuyển đổi xuất JSON từ một hệ thống sang cấu hình YAML cho hệ thống khác là một bước tích hợp thông thường.
Dán JSON, nhận YAML.
Hàm kết xuất của js-yaml duyệt cây đối tượng JavaScript và phát ra YAML bằng cách sử dụng định dạng có thể định cấu hình. Độ sâu thụt lề, độ rộng dòng, ngưỡng kiểu luồng và xử lý trích dẫn đều là các tham số. Cài đặt mặc định tạo ra YAML kiểu khối với thụt lề 2 dấu cách, quy ước phổ biến nhất.
Việc trích dẫn chuỗi tuân theo các quy tắc của YAML: các chuỗi trông giống các loại khác (số, boolean, null, ngày tháng) được trích dẫn để buộc diễn giải chuỗi; các chuỗi chứa các ký tự đặc biệt (dấu hai chấm, dấu băm, dấu gạch ngang ở đầu) được trích dẫn; các chuỗi chữ cái đơn giản không được trích dẫn.
Đầu ra tương thích với YAML 1.2 và phân tích cú pháp rõ ràng với js-yaml, PyYAML và các thư viện YAML chính khác. Các chuyến đi khứ hồi bình thường (JSON → YAML → JSON) bảo toàn dữ liệu, mặc dù cách trình bày YAML chọn định dạng chuẩn có thể khác với định dạng viết tay tương đương.