Chuyển đến nội dung
SPCXTools

Chuyển đổi YAML sang JSON

Chuyển đổi tệp cấu hình qua lại giữa YAML và JSON, tích hợp kiểm tra cú pháp.

Chạy cục bộ — tệp không bao giờ rời khỏi thiết bị của bạn

Đang tải công cụ…

Cách sử dụng Chuyển đổi YAML sang JSON

  1. 1Chọn chiều chuyển đổi — YAML → JSON hoặc JSON → YAML.
  2. 2Dán mã YAML hoặc JSON vào ô bên trái, hoặc nhấp vào Mẫu.
  3. 3Kết quả chuyển đổi sẽ hiển thị ở bên phải ngay khi bạn nhập. Các lỗi cú pháp sẽ được thông báo bên dưới kèm theo mô tả.
  4. 4Sao chép kết quả hoặc tải xuống dưới dạng tệp .json hoặc .yaml. Khi đảo chiều chuyển đổi, kết quả sẽ tự động chuyển thành dữ liệu đầu vào.

Chuyển đổi giữa YAML và JSON

YAML và JSON là hai định dạng phổ biến nhất cho cấu hình và dữ liệu có cấu trúc. Các manifest Kubernetes, file Docker Compose, pipeline CI và đặc tả OpenAPI thường được viết bằng YAML, trong khi các API, mã JavaScript và nhiều công cụ khác lại dùng JSON. Công cụ chuyển đổi này giúp bạn dịch qua lại giữa hai định dạng ngay khi bạn gõ, và báo lỗi chính xác nếu dữ liệu đầu vào không hợp lệ.

Tính năng

  • Hai chiều: YAML → JSON và JSON → YAML, chuyển đổi chỉ với một cú nhấp chuột.
  • Kiểm tra cú pháp với thông báo lỗi rõ ràng cho các lỗi như sai thụt lề, thiếu dấu ngoặc kép và JSON không hợp lệ.
  • YAML nhiều tài liệu (Multi-document) được chuyển thành một mảng JSON.
  • Anchor, alias và merge key được tự động xử lý.
  • Thụt lề 2 hoặc 4 khoảng trắng cho kết quả đầu ra.
  • Sao chép hoặc tải xuống kết quả dưới dạng file .json hoặc .yaml.
  • Bảo mật: không có dữ liệu nào được gửi lên máy chủ.

Ví dụ

Đoạn YAML này:

name: web-app
replicas: 3
ports:
  - 80
  - 443
env:
  NODE_ENV: production

sẽ được chuyển thành đoạn JSON sau:

{
  "name": "web-app",
  "replicas": 3,
  "ports": [80, 443],
  "env": {
    "NODE_ENV": "production"
  }
}

Các lỗi YAML thường gặp

  • Dùng tab để thụt lề. YAML chỉ cho phép dùng khoảng trắng. Hãy thay thế tab bằng hai khoảng trắng.
  • Thụt lề không nhất quán. Các mục cùng cấp phải được thụt lề một khoảng chính xác bằng nhau.
  • Thiếu khoảng trắng sau dấu hai chấm. key:value sẽ bị đọc thành một chuỗi duy nhất; hãy viết là key: value.
  • Ký tự đặc biệt trong chuỗi. Các giá trị bắt đầu bằng @, *, &, !, %, { hoặc [, hoặc có chứa : , cần được đặt trong dấu ngoặc kép.
  • Kiểu dữ liệu không mong muốn. Các số phiên bản như 1.10 sẽ trở thành số 1.1 và các số 0 ở đầu có thể bị mất. Hãy đặt trong dấu ngoặc kép các giá trị cần giữ nguyên là chuỗi.

Các công cụ liên quan

Làm đẹp hoặc nén JSON kết quả với JSON Formatter, chuyển JSON thành bảng tính với JSON to CSV, hoặc so sánh hai file cấu hình với Diff Checker.

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

Sự khác biệt giữa YAML và JSON là gì?
Cả hai đều mô tả cùng một loại dữ liệu — object, list, string, number, boolean và null. JSON sử dụng dấu ngoặc nhọn, ngoặc vuông, dấu ngoặc kép và là tiêu chuẩn cho các API. YAML sử dụng thụt lề thay vì dấu ngoặc, cho phép viết comment và rất phổ biến cho các file cấu hình như Docker Compose, Kubernetes, GitHub Actions và Ansible.
Các comment trong YAML sẽ ra sao?
JSON không hỗ trợ comment, vì vậy các comment sẽ bị loại bỏ khi chuyển đổi YAML sang JSON. Khi chuyển đổi ngược lại, YAML sẽ không chứa các comment ban đầu.
Nhiều document YAML được xử lý như thế nào?
Một file YAML có thể chứa nhiều document phân tách bằng ---. Khi đó, công cụ chuyển đổi sẽ xuất ra một mảng JSON với mỗi phần tử tương ứng một document.
Anchor và alias có được hỗ trợ không?
Có. Anchor (&name), alias (*name) và merge key (<<: *name) đều được xử lý, do đó JSON sẽ chứa các giá trị đã được mở rộng đầy đủ.
Tại sao giá trị của tôi bị đổi kiểu dữ liệu, ví dụ "no" thành false?
Công cụ này tuân theo chuẩn YAML 1.2, trong đó chỉ có true và false là boolean. Các trình phân tích (parser) YAML 1.1 cũ hơn cũng coi yes, no, on và off là boolean. Nếu bạn muốn giữ giá trị là chuỗi (string), hãy đặt nó trong dấu ngoặc kép.
Dữ liệu của tôi có bị tải lên máy chủ không?
Không. Quá trình phân tích và chuyển đổi diễn ra ngay trên trình duyệt của bạn, vì vậy các file cấu hình chứa thông tin bảo mật (secret) hoặc hostname nội bộ sẽ không bao giờ rời khỏi thiết bị của bạn.