Công cụ
VI

Chuyển JSON sang YAML online

Dán JSON để nhận YAML gọn gàng, dễ đọc cho file cấu hình, manifest Kubernetes hay pipeline CI – hoặc đổi chiều để chuyển YAML sang JSON.

JSON

YAML

Riêng tư: dữ liệu của bạn được xử lý ngay trong trình duyệt và không bao giờ được tải lên.

Cách chuyển JSON sang YAML

  1. Dán JSON hoặc mở file; YAML sẽ hiện ra trong lúc bạn gõ. Chọn thụt lề 2 hoặc 4 dấu cách.
  2. Để chuyển theo chiều ngược lại, đổi chiều sang YAML → JSON và dán YAML vào.
  3. Sao chép kết quả hoặc tải về dưới dạng file .yaml hoặc .json.

So sánh JSON và YAML

JSONYAML
Cấu trúcdấu ngoặc nhọn {} và ngoặc vuông []thụt lề và các mục danh sách -
Chuỗiluôn nằm trong dấu nháy képchỉ dùng dấu nháy khi cần
Chú thíchkhông được phép# comment
Văn bản nhiều dòngescape \nblock literal với |
Mục đích sử dụng thường gặpAPI và trao đổi dữ liệufile cấu hình

YAML 1.2 là tập cha của JSON, nên một tài liệu JSON vốn đã là YAML hợp lệ. Tuy vậy, công cụ sẽ xuất ra kiểu block dễ đọc hơn.

Những giá trị cần đặt trong dấu nháy trong YAML

Một số từ không có dấu nháy sẽ bị đổi kiểu trong YAML: yes, no, on và off là boolean trong các parser YAML 1.1, 007 và 1e3 là số, còn null hoặc ~ nghĩa là null. Đây chính là “vấn đề Na Uy” (Norway problem) nổi tiếng: mã quốc gia NO biến thành false khi không được đặt trong dấu nháy. Công cụ tự động thêm dấu nháy cho những chuỗi như vậy, nên khi đọc lại, YAML cho ra đúng dữ liệu ban đầu.

YAML được hỗ trợ khi chuyển YAML → JSON

Trình phân tích hiểu loại YAML thường dùng trong file cấu hình và API: mapping và danh sách dạng block, chuỗi thường, chuỗi trong nháy đơn và nháy kép, block nhiều dòng | và >, tập hợp inline [ ] và { }, chú thích và dấu phân tách tài liệu ---. Anchor (&), alias (*) và tag tùy chỉnh sẽ được báo là không hỗ trợ, kèm số dòng. Với file chứa nhiều tài liệu, chỉ tài liệu đầu tiên được chuyển đổi.

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

YAML có phải là tập cha của JSON không?

YAML 1.2 được thiết kế là tập cha của JSON, nên hầu như mọi file JSON cũng là YAML hợp lệ. Điều ngược lại thì không đúng: YAML có chú thích, anchor và block nhiều dòng mà JSON không có.

Chú thích có được giữ lại khi chuyển YAML sang JSON không?

Không. JSON không có chú thích nên chúng sẽ bị bỏ đi. Khóa, giá trị và thứ tự của chúng được giữ nguyên.

Tại sao YAML của tôi bị báo lỗi?

Nguyên nhân thường gặp là dùng tab để thụt lề (YAML chỉ cho phép dấu cách), các mục trong cùng một danh sách hoặc mapping không bắt đầu ở cùng một cột, và thiếu dấu cách sau dấu hai chấm. Thông báo lỗi sẽ cho bạn biết dòng bị lỗi.

Giá trị YAML được chuyển sang kiểu gì trong JSON?

Theo core schema của YAML 1.2: true/false thành boolean, null và ~ thành null, số thông thường thành số JSON, còn những từ như yes vẫn là chuỗi. Hãy đặt các mã như "007" trong dấu nháy trong YAML để giữ chúng ở dạng văn bản.