Bộ chuyển JSON sang YAML - Chuyển hai chiều trực tuyến
Chuyển JSON sang YAML và ngược lại
Chuyển đổi giữa JSON và YAML
JSON và YAML mô tả cùng một loại dữ liệu — bản đồ, danh sách, chuỗi, số, boolean và null — bằng hai cú pháp. JSON là ngôn ngữ của API và tệp gói; YAML là ngôn ngữ của tệp cấu hình Docker, Kubernetes, GitHub Actions và pipeline CI. Bộ chuyển này dịch bên này sang bên kia tức thì và lo các chi tiết hay làm người ta vấp: dấu nháy, thụt đầu dòng và những từ lạ mà YAML coi là boolean.
Các bước
- 1 Chọn hướng và dán tài liệu vào ô trên. Kết quả xuất hiện bên dưới khi bạn gõ.
- 2 Đặt độ rộng thụt đầu dòng — 2 khoảng trắng là quy ước trong YAML và hầu hết hướng dẫn phong cách JSON.
- 3 Sao chép kết quả, tải về dạng tệp, hoặc dùng kết quả làm đầu vào mới để kiểm tra chuyển đổi khứ hồi.
Hai định dạng khác nhau ở điểm nào
YAML bỏ ngoặc nhọn, ngoặc vuông và hầu hết dấu nháy, dùng thụt đầu dòng để thể hiện cấu trúc, nên một đối tượng JSON 40 dòng thành tài liệu YAML 25 dòng. Các khóa giữ nguyên thứ tự. Danh sách thành các mục gạch đầu dòng; đối tượng lồng nhau thành khối thụt vào; đối tượng hay danh sách trống vẫn viết là {} hoặc []. Theo chiều ngược lại, chú thích YAML bị mất vì JSON không có chú thích.
Vì sao một số chuỗi có dấu nháy
Trong YAML, yes, no, on, off, true hay null không có dấu nháy được đọc là boolean hoặc null, còn 123 hay 1.0 là số. Chuỗi trông giống những thứ này phải được đặt trong dấu nháy, nếu không nó đổi kiểu khi quay lại — ví dụ kinh điển là mã quốc gia NO thành false. Bộ chuyển đặt dấu nháy đúng cho những chuỗi ấy, cộng thêm chuỗi có khoảng trắng đầu/cuối, dấu hai chấm theo sau khoảng trắng, hoặc bắt đầu bằng ký tự đặc biệt, và để phần còn lại trần cho dễ đọc.
Chuỗi nhiều dòng
Chuỗi chứa ngắt dòng được viết dưới dạng block scalar của YAML: một dấu gạch đứng trên dòng khóa và văn bản thụt vào bên dưới, kèm dấu trừ khi chuỗi không kết thúc bằng ngắt dòng. Đó là dạng bạn thấy trong manifest Kubernetes và tệp CI, và đọc lại cho đúng chuỗi ban đầu.
Thụt đầu dòng và tương thích
Bộ chuyển viết YAML 1.2, mọi bộ phân tích hiện đại đều đọc được — PyYAML, js-yaml, Go yaml, Ruby Psych. Khóa lồng nhau được thụt theo độ rộng bạn chọn; khóa của đối tượng trong danh sách luôn nằm cách dấu gạch hai khoảng trắng, như đặc tả yêu cầu. Không bao giờ dùng tab.