Chuyển đến nội dung chính

Chuyển Đổi YAML sang JSON miễn phí

Chuyển đổi YAML sang JSON và JSON sang YAML theo cả hai chiều. Dán vào bất kỳ định dạng nào và nhận đầu ra đã chuyển đổi tức thì — không cần tải lên máy chủ.

Hoạt động ngoại tuyến sau khi tải
Đầu ra JSON
Đầu ra sẽ hiện ở đây…

Công dụng phổ biến

  • Chuyển Đổi YAML sang JSON cho Kubernetes ManifestsChuyển đổi Kubernetes YAML sang JSON (hoặc ngược lại) cho công cụ, tập lệnh xác thực hoặc áp dụng trực tiếp qua API.
  • Docker Compose YAML / Chuyển Đổi JSONChuyển đổi docker-compose.yml sang JSON để kiểm tra hoặc trở lại YAML sau các chỉnh sửa theo chương trình.
  • Chuyển Đổi Cấu Hình Đường Dẫn CI/CDChuyển đổi GitHub Actions, GitLab CI, CircleCI và các cấu hình đường dẫn khác giữa các định dạng YAML và JSON.
  • Chuyển Đổi Tệp Cấu Hình Ứng DụngChuyển đổi tệp cấu hình ứng dụng giữa YAML và JSON: hữu ích khi chuyển đổi khung hoặc chia sẻ cấu hình trên các công cụ.
  • Chuyển Đổi Thông Số OpenAPI / SwaggerChuyển đổi các thông số kỹ thuật API OpenAPI 3.x hoặc Swagger 2.0 giữa các định dạng YAML và JSON. Cả hai định dạng đều hợp lệ và có thể hoán đổi được.

Cách hoạt động

Cả hai chiều chuyển đổi — YAML sang JSON và JSON sang YAML — chạy hoàn toàn trong trình duyệt bằng bộ phân tích và bộ xuất tự viết tích hợp trong trang, không dùng thư viện YAML bên thứ ba và không có máy chủ tham gia. Logic nằm trong một module TypeScript duy nhất (lib/yamljson.ts) xử lý mapping, sequence, giá trị vô hướng, chuỗi có dấu nháy và loại bỏ chú thích nội tuyến.

  1. 1
    Đầu vào được tiền xử lý từng dòng
    Với đầu vào YAML, bộ phân tích tách văn bản thành dòng, loại bỏ chú thích nội tuyến (theo dõi trạng thái dấu nháy để không xóa # bên trong chuỗi), đo độ sâu thụt lề và bỏ dòng trống — tạo danh sách token có cấu trúc trước khi bắt đầu phân tích.
  2. 2
    Bộ phân tích đệ quy xuống dựng cây dữ liệu
    Bộ phân tích duyệt danh sách token, dùng mức thụt lề để xác định cấu trúc. Nó nhận diện mục sequence (- value), khóa mapping (key: value) và khối lồng nhau. Giá trị vô hướng đi qua bước ép kiểu xử lý null, boolean, số nguyên (từ chối giá trị có số 0 đứng đầu như 007 để tránh làm hỏng dữ liệu ngầm) và số thực — với chế độ tùy chọn giữ các từ trần của YAML 1.1 như yes, no, on và off dạng chuỗi thay vì chuyển thành boolean.
  3. 3
    Tính năng YAML không hỗ trợ được đánh dấu, không âm thầm bỏ qua
    Trước khi xuất đầu ra, công cụ quét tìm anchor (&name), alias (*name), khóa merge (<<:), khối vô hướng (| và >), dấu nhiều tài liệu (---) và khóa mapping trùng lặp. Bất kỳ trường hợp nào trong số này đều kích hoạt cảnh báo hiển thị thay vì tạo ra JSON sai một cách khó nhận ra.
  4. 4
    JSON được tuần tự hóa hoặc YAML được xuất, rồi cung cấp cho bạn
    Với YAML→JSON, giá trị đã phân tích được truyền vào JSON.stringify với độ thụt lề bạn chọn (2 dấu cách, 4 dấu cách, tab hoặc thu gọn). Với JSON→YAML, một bộ xuất tùy chỉnh duyệt giá trị JavaScript đã phân tích và tạo YAML thụt lề, chỉ đặt dấu nháy cho chuỗi khi cần (ví dụ giá trị chứa :, # hoặc trông giống từ dành riêng). Đầu ra xuất hiện ngay khi bạn gõ và có thể sao chép hoặc tải về.

Công cụ liên quan

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