Chuyển JSON sang YAML

Biến JSON thành YAML gọn gàng, dễ đọc cho Kubernetes, Docker Compose, GitHub Actions hoặc Ansible, với toàn quyền kiểm soát thụt lề, kiểu và dấu nháy.

Chạy trên trình duyệtKhông cần đăng kýKhông tải lên gì

JSON đầu ra

Cách dùng JSON sang YAML

  1. Dán JSON vào ô bên trái hoặc mở tệp .json.
  2. YAML xuất hiện bên phải ngay khi bạn gõ.
  3. Chọn thụt lề (2 hoặc 4 dấu cách) và kiểu: block (mỗi khóa một dòng) hoặc flow ({a: 1}/[x, y]) từ một cấp lồng nhau nhất định.
  4. Chọn kiểu dấu nháy và đánh dấu Sắp xếp khóa nếu bạn muốn thứ tự theo bảng chữ cái.
  5. Sao chép hoặc tải xuống YAML. JSON không hợp lệ được báo lỗi kèm dòng, cột và nguyên nhân có thể.

Vì sao cần chuyển JSON sang YAML?

JSON lý tưởng cho máy và API, nhưng YAML dễ đọc và chỉnh sửa hơn với con người: không có ngoặc nhọn, không bắt buộc dấu nháy và hỗ trợ chú thích. Hầu hết công cụ hạ tầng, gồm Kubernetes, Helm, Docker Compose, GitHub Actions, GitLab CI và Ansible, được cấu hình bằng YAML, trong khi dữ liệu ban đầu (đầu ra API, kubectl get -o json, Terraform state) thường là JSON.

Kiểu block và kiểu flow

Kiểu block đặt mỗi khóa và phần tử danh sách trên một dòng riêng và là lựa chọn quen thuộc cho tệp cấu hình. Kiểu flow dùng {} và [] nội tuyến, giống JSON, và giữ các cấu trúc lá ngắn gọn. “Flow từ cấp 2” giữ hai cấp trên cùng ở kiểu block và viết nội tuyến mọi thứ sâu hơn, rất hợp với danh sách dài các object nhỏ như port hay biến môi trường.

Đặt nháy an toàn

Chuỗi mà trình phân tích YAML có thể hiểu sai sẽ tự động được đặt trong nháy: các giá trị như 'no', 'on', '1.0', 'null', chuỗi bắt đầu bằng * hoặc &, và chuỗi chứa : . Chọn Luôn nháy đơn hoặc Luôn nháy kép nếu quy ước của bạn yêu cầu mọi chuỗi đều có nháy.

Những bẫy giữa YAML 1.1 và 1.2

Công cụ này tuân theo YAML 1.2, đặc tả hiện hành. Nhiều công cụ cũ (PyYAML, Psych của Ruby, một số phiên bản Kubernetes và Ansible) vẫn đọc theo YAML 1.1, nơi các quy tắc khác đi:

  • Vấn đề Na Uy: trong YAML 1.1, country: no nghĩa là false, nên mã quốc gia NO của Na Uy biến mất. Tương tự với yes, on, off, y và n. YAML 1.2 chỉ coi true và false là boolean.
  • Số bát phân: 0755 là bát phân trong 1.1 nhưng là số thập phân thường trong 1.2, vốn dùng 0o755. Hãy đặt nháy cho quyền tệp để an toàn.
  • Số cơ số 60: trong 1.1, 22:30 có thể được hiểu là số 1350. Hãy đặt nháy cho giờ và ánh xạ port như "8080:80".

Chiều JSON → YAML tự động đặt nháy cho các chuỗi dễ nhầm ('no', 'on', 'y'), nên YAML tạo ra được đọc giống nhau ở cả hai phiên bản.

Câu hỏi thường gặp

Việc chuyển đổi có mất dữ liệu không?
Không. Mọi tài liệu JSON đều là YAML 1.2 hợp lệ, và YAML được tạo ra khi phân tích lại cho đúng dữ liệu ban đầu. Bạn có thể kiểm tra bằng cách bấm Đảo chiều.
Vì sao có chuỗi được đặt nháy, có chuỗi thì không?
Với Chỉ khi cần, dấu nháy chỉ được thêm ở nơi giá trị không có nháy sẽ đổi nghĩa, ví dụ 'yes', '123' hoặc chuỗi có ký tự đặc biệt. Mọi thứ khác được để nguyên cho dễ đọc.
Tôi có thể thêm chú thích vào kết quả không?
JSON không có chú thích nên không có gì để chuyển, nhưng bạn có thể thêm # comments vào YAML sau khi sao chép.
Thứ tự khóa có thay đổi không?
Không. Khóa giữ nguyên thứ tự như trong JSON trừ khi bạn đánh dấu Sắp xếp khóa.
Dữ liệu của tôi có được giữ riêng tư không?
Có. Công cụ chạy trong trình duyệt của bạn và không gửi bất kỳ request mạng nào chứa dữ liệu đầu vào.

Công cụ liên quan