Chuyển đến nội dung

Chuyển đổi định dạng YAML sang JSON

Phân tích một tài liệu YAML bằng thư viện yaml (lược đồ lõi YAML 1.2) và xuất thành JSON có thụt lề. Chú thích bị loại bỏ, neo và bí danh được mở rộng, còn các giá trị như yes hoặc 2024-01-01 vẫn là chuỗi.

Gửi cấu hình viết bằng YAML đến API hoặc bộ kiểm tra JSON Schema chỉ chấp nhận JSON.

YAML

JSON

Khi nào nên sử dụng

  • Gửi cấu hình viết bằng YAML đến API hoặc bộ kiểm tra JSON Schema chỉ chấp nhận JSON.
  • Kiểm tra kiểu dữ liệu thực tế trong tệp CI hoặc Kubernetes, ví dụ phiên bản là chuỗi hay số.

Cách sử dụng

  1. Dán một tài liệu YAML duy nhất hoặc tải tệp .yaml/.yml lên.
  2. Nếu xuất hiện lỗi, hãy kiểm tra thụt lề, khóa trùng lặp và dấu phân cách --- tại dòng được báo.
  3. Kiểm tra chuỗi và số trong đầu ra JSON, rồi sao chép kết quả.

Đầu vào YAML

# deployment settings
service: billing-api
replicas: 2
version: "1.10"
enabled: yes
ports:
  - 80
  - 443
env:
  LOG_LEVEL: info

JSON

{
  "service": "billing-api",
  "replicas": 2,
  "version": "1.10",
  "enabled": "yes",
  "ports": [
    80,
    443
  ],
  "env": {
    "LOG_LEVEL": "info"
  }
}

Chi tiết và giới hạn

Quá trình phân tích chạy trong trình duyệt. Đầu ra luôn là JSON thụt lề 2 dấu cách; không có tùy chọn rút gọn.

Áp dụng quy tắc YAML 1.2: yes/no/on/off là chuỗi, không phải boolean, và ngày không có dấu nháy vẫn là chuỗi. 0o17 là số bát phân (15).

Khóa hợp nhất (<<: *anchor) không được hợp nhất; chúng xuất hiện dưới dạng khóa "<<" nguyên văn. Khóa trùng lặp trong cùng một ánh xạ sẽ gây lỗi.

Số nguyên vượt quá 2^53 sẽ mất độ chính xác trong JSON. Hãy đặt ID dài trong dấu nháy ở YAML.

FAQ

Công cụ có thể chuyển đổi tệp chứa nhiều tài liệu phân cách bằng --- không?

Không. Nhiều tài liệu sẽ gây lỗi "Nguồn chứa nhiều tài liệu". Hãy dán từng tài liệu một. Một dấu --- duy nhất ở đầu thì hợp lệ.

Tại sao enabled: yes lại là chuỗi trong JSON?

Bộ phân tích tuân theo YAML 1.2, trong đó chỉ true và false là boolean. Hãy viết true/false nếu cần giá trị boolean trong JSON.

Công cụ có hỗ trợ neo và bí danh không?

Có. Bí danh như *base được thay bằng bản sao của giá trị được gắn neo. Tuy nhiên, khóa hợp nhất << của YAML 1.1 không được áp dụng.

Đặc tả và tài liệu tham khảo