Chuyển YAML sang JSON

Biến file YAML thành JSON hợp lệ.

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 YAML sang JSON

  1. Dán YAML của bạn hoặc tải lên file .yaml hay .yml.
  2. Sửa lỗi tại đúng dòng và cột được chỉ ra.
  3. Sao chép JSON hoặc tải về.

Ví dụ: YAML vào, JSON ra

Dòng YAMLJSON
name: Sam"name": "Sam"
age: 30"age": 30
active: true"active": true
tags: [a, b]"tags": ["a", "b"]

Các tính năng YAML được giữ lại

  • Anchor (&name) và alias (*name) được mở rộng thành bản sao đầy đủ của giá trị được tham chiếu.
  • Kiểu flow, như {a: 1} hoặc [1, 2] viết trên một dòng, được phân tích giống hệt kiểu block tương đương.
  • Nhiều document cách nhau bởi một dòng ba dấu gạch ngang sẽ thành một mảng JSON, theo đúng thứ tự.
  • Chú thích bắt đầu bằng # bị bỏ qua, vì JSON không có cú pháp chú thích để chuyển chúng vào.

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

Triệu chứngNguyên nhân thường gặp
Lỗi thụt lề saiMột ký tự tab, hoặc một dòng thụt lề lệch một dấu cách so với dòng trên
Kết thúc luồng dữ liệu bất ngờMột dấu ngoặc kép hoặc dấu ngoặc bị bỏ ngỏ ở đâu đó trước
Một giá trị bất ngờ trở thành true hoặc falseyes, no, on hoặc off được viết không có dấu ngoặc kép

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

  • Đọc chính xác giá trị của một manifest Kubernetes ở định dạng mà script của bạn đã hiểu sẵn.
  • Debug một file pipeline CI bằng cách xem cấu trúc đã phân tích thay vì thụt lề thô.
  • Đưa một cấu hình YAML vào một công cụ hay API chỉ chấp nhận JSON.

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

Điều gì xảy ra với nhiều document YAML trong một file?

Các document cách nhau bởi một dòng ba dấu gạch ngang sẽ được chuyển đổi riêng và trả về cùng nhau thành một mảng JSON, theo đúng thứ tự.

Vì sao tôi gặp lỗi thụt lề sai?

YAML đọc cấu trúc dựa vào thụt lề, nên một dòng thụt lề lệch dù chỉ một dấu cách, hoặc dùng tab thay vì dấu cách, sẽ làm hỏng cấu trúc. Lỗi nêu rõ dòng và cột, và Đi đến lỗi sẽ chọn ngay vị trí đó.

Anchor và alias có được hỗ trợ không?

Có. Một giá trị được đánh dấu bằng anchor dấu & và được dùng lại bằng alias dấu * sẽ được sao chép vào mọi nơi nó xuất hiện.

Ngày tháng sẽ ra sao?

Ngày tháng như 2024-05-01 được giữ dưới dạng văn bản, vì JSON không có kiểu ngày tháng.

Tôi có thể dán YAML dùng tab để thụt lề không?

Không. YAML yêu cầu dùng dấu cách để thụt lề, nên một tab sẽ gây lỗi thụt lề sai ngay tại dòng đó. Hãy thay bằng 2 dấu cách rồi thử lại.

Một khóa trùng lặp trong map YAML sẽ ra sao?

Giá trị được ghi sau cùng cho một khóa lặp lại sẽ thắng, vì đó là cách trình phân tích bên dưới xử lý map trước khi chuyển thành JSON.

Công cụ có chuyển được file YAML có include file khác không?

Không. Các thẻ tùy chỉnh như !include, được một số trình xử lý YAML dùng, cần quyền truy cập hệ thống file mà công cụ chạy trên trình duyệt này không có. YAML thuần không dùng thẻ tùy chỉnh vẫn chuyển đổi bình thường.

Công cụ có xử lý thẻ kiểu tường minh, như !!str hay !!int, không?

Có, các thẻ tường minh phổ biến được đọc và chuyển sang đúng kiểu JSON tương ứng thay vì đoán từ hình dạng của giá trị.

Công cụ liên quan