Chuyển JSON sang YAML

Biến JSON thành YAML dễ đọc chỉ trong một bước.

Chạy ngay trên trình duyệt. Không có gì bạn nhập vào bị gửi đi đâu cả.

Cách chuyển JSON sang YAML

  1. Dán hoặc tải lên JSON của bạn.
  2. YAML hiện ra ngay khi bạn gõ.
  3. Sao chép hoặc tải file .yaml về.

Điều gì thay đổi từ JSON sang YAML

  • Dấu ngoặc nhọn và dấu phẩy biến mất. Thụt lề thể hiện cấu trúc thay thế.
  • Tên thuộc tính mất dấu ngoặc kép, trừ khi tên đó chứa ký tự mà YAML cần đặt trong ngoặc, như dấu hai chấm.
  • Một mảng JSON trở thành danh sách các dòng có dấu gạch đầu dòng, mỗi dòng một phần tử, thụt vào dưới khóa của nó.
  • true, false và null được viết cùng một từ ở cả hai định dạng.

Vì sao một số giá trị YAML giữ dấu ngoặc kép

Giá trị JSONĐược viết thànhLý do
"007"'007'007 không ngoặc sẽ được đọc thành số 7
"yes"'yes'Một số trình đọc YAML coi yes hoặc no không ngoặc là boolean
"null"'null'null không ngoặc sẽ được phân tích thành giá trị null
"2024-01-01"'2024-01-01'Ngày tháng không ngoặc được một số trình đọc hiểu thành kiểu ngày

YAML xuất hiện ở đâu

  • File Docker Compose
  • Manifest Kubernetes
  • File workflow GitHub Actions
  • Playbook Ansible

JSON sang YAML giúp ích ở đâu

  • Biến một file cài đặt đã xuất ra thành định dạng cấu hình mà công cụ triển khai của bạn thực sự đọc được.
  • Giúp một phản hồi API dễ rà soát hơn trước khi so sánh hai phiên bản của nó.
  • Phác thảo một file values cho Helm chart hoặc công cụ tương tự từ dữ liệu JSON có sẵn.

Câu hỏi thường gặp về JSON sang YAML

Vì sao dùng YAML thay vì JSON?

YAML bỏ bớt hầu hết dấu ngoặc và dấu ngoặc kép, dùng thụt lề thay thế, nên file cấu hình cho các công cụ như Docker Compose, Kubernetes và GitHub Actions dễ đọc và sửa tay hơn.

Vì sao một số giá trị được đặt trong dấu ngoặc kép?

Những chuỗi mà YAML có thể hiểu nhầm thành thứ khác sẽ giữ dấu ngoặc kép. Ví dụ '007' vẫn là văn bản thay vì trở thành số 7, và 'yes' vẫn là một chuỗi.

Tôi có thể thêm chú thích vào YAML không?

JSON không có chú thích, nên không có gì để chuyển sang. Bạn có thể tự thêm bằng dấu # sau khi chuyển đổi.

Công cụ này viết theo phương ngữ YAML nào?

YAML 1.2 chuẩn, do js-yaml tạo ra, cùng thư viện mà nhiều công cụ build Node.js dùng để đọc và ghi file cấu hình.

Công cụ có giữ thứ tự các khóa không?

Có. Các khóa được viết theo đúng thứ tự xuất hiện trong object JSON, nên việc so sánh (diff) giữa hai bên vẫn dễ theo dõi.

Tôi có thể chuyển một mảng JSON ở cấp cao nhất không?

Được. Một mảng ở cấp cao nhất sẽ thành một chuỗi YAML gồm các mục có dấu gạch đầu dòng thay vì một mapping khóa-giá trị.

Công cụ có xử lý object lồng sâu và mảng chứa object không?

Có. Cấu trúc lồng ở bất kỳ độ sâu nào đều chuyển đổi đúng, mỗi cấp thụt thêm 2 dấu cách so với cấp cha, đây là kiểu mặc định của js-yaml.

Một giá trị chứa dấu hai chấm, như thời gian hoặc URL, sẽ ra sao?

Cả giá trị đó sẽ được đặt trong dấu ngoặc kép, vì một dấu hai chấm không có ngoặc kép theo sau bởi dấu cách sẽ trông giống như phần mở đầu của một khóa mới.

Công cụ liên quan