Chuyển đổi miễn phí

YAML sang Trình chuyển đổi JSON

Chuyển đổi YAML sang JSON nhanh chóng và an toàn. Hoàn hảo cho các tập tin cấu hình và phân tích dữ liệu.

Hoặc

Về công cụ này

YAML và JSON là các định dạng có liên quan chặt chẽ với nhau — JSON về mặt kỹ thuật là một tập hợp con nghiêm ngặt của YAML 1.2 — và việc chuyển đổi giữa chúng thường rất đơn giản. YAML bổ sung các tính năng thân thiện với con người mà JSON thiếu: nhận xét, chuỗi nhiều dòng không thoát, tham chiếu neo và bí danh, trích dẫn linh hoạt hơn và cấu trúc dựa trên thụt lề giống với bố cục tài liệu tự nhiên. Điều này làm cho YAML trở thành lựa chọn phổ biến cho các tệp cấu hình (tệp kê khai Kubernetes, quy trình làm việc của GitHub Actions, Docker Compose) trong khi JSON thống trị tải trọng API.

Việc chuyển đổi YAML sang JSON thường có nghĩa là từ bỏ các tính năng bổ sung thân thiện với con người của YAML để đổi lấy một định dạng mà máy phân tích cú pháp dễ dàng hơn và đó là ngôn ngữ chung của API HTTP. Nhận xét bị loại bỏ (JSON không có). Tham chiếu neo được giải quyết thành giá trị tham chiếu của chúng. Chuỗi nhiều dòng thu gọn thành chuỗi JSON tiêu chuẩn với các dòng mới được nhúng.

Trình chuyển đổi này phân tích cú pháp YAML bằng js-yaml, thư viện YAML được sử dụng rộng rãi nhất trong JavaScript. Đầu ra được tạo bằng JSON.stringify với thụt lề tùy chọn. Việc chuyển đổi xử lý tất cả cú pháp YAML 1.2 tiêu chuẩn bao gồm kiểu luồng, kiểu khối, vô hướng, trình tự, ánh xạ, neo, bí danh và các loại thẻ tiêu chuẩn.

Tại sao chuyển đổi YAML sang JSON

Hầu hết các API và nhiều môi trường lập trình đều yêu cầu JSON. Các tệp cấu hình được viết bằng YAML cần được chuyển đổi sang JSON khi tích hợp với mã hoặc dịch vụ chỉ chấp nhận JSON. Công cụ dành cho JSON cũng phong phú hơn: jq, Đường dẫn JSON, Lược đồ JSON và một hệ sinh thái rộng lớn gồm các trình xác nhận và trình chuyển đổi đều sử dụng đầu vào JSON.

JSON cũng rõ ràng theo cách mà YAML không rõ ràng. Tính linh hoạt của YAML tạo ra những bất ngờ về phân tích cú pháp — các chuỗi như phân tích cú pháp 'no' dưới dạng boolean false trong YAML 1.1, chuỗi phiên bản phân tích cú pháp dưới dạng float, lỗi thụt lề tạo ra các thay đổi cấu trúc thầm lặng. Việc chuyển đổi sang JSON sẽ đóng băng dữ liệu thành một dạng ít mơ hồ hơn.

Cách sử dụng

Dán YAML, nhận JSON.

  1. Thêm YAML của bạn: Dán văn bản YAML vào vùng nhập hoặc thả tệp .yml/.yaml. js-yaml chấp nhận cú pháp YAML 1.2 đầy đủ.
  2. Chuyển đổi: js-yaml phân tích YAML thành một đối tượng JavaScript và JSON.stringify tuần tự hóa nó bằng cách thụt lề hai dấu cách. Các nhận xét bị loại bỏ, các neo được giải quyết và các loại YAML đặc biệt (dấu thời gian, dữ liệu nhị phân) được chuyển đổi thành các biểu diễn tương thích với JSON.
  3. Xem lại kết quả: Xác nhận rằng cấu trúc JSON khớp với những gì bạn mong đợi. So sánh với YAML nguồn để phát hiện bất kỳ vị trí nào mà việc gõ lỏng lẻo của YAML tạo ra các giá trị JSON không mong muốn.
  4. Tải xuống hoặc sao chép: Lưu dưới dạng .json hoặc sao chép vào clipboard. Đầu ra là JSON hợp lệ có thể được sử dụng bởi bất kỳ trình phân tích cú pháp JSON nào.

Các trường hợp sử dụng phổ biến

Chi tiết kỹ thuật

js-yaml triển khai YAML 1.2 với sự hỗ trợ tùy chọn cho các điểm kỳ quặc của YAML 1.1 (vấn đề 'không' là sai, số bát phân không có tiền tố 0o). Trình phân tích cú pháp tạo ra một cây đối tượng JavaScript bằng cách sử dụng các kiểu gốc: số, chuỗi, boolean, null, mảng và các đối tượng đơn giản.

JSON.stringify tuần tự hóa cây đối tượng thành JSON. Thụt lề tùy chọn tạo ra kết quả in đẹp; không có nó thì kết quả là JSON một dòng nhỏ gọn. Các giá trị đặc biệt (NaN, Infinity, không xác định) không phải là JSON hợp lệ; bộ chuyển đổi buộc chúng thành null nếu có.

Các trường hợp cạnh: Dấu thời gian YAML trở thành chuỗi ISO-8601 trong JSON. Dữ liệu nhị phân YAML (được mã hóa base64) trở thành một chuỗi. Các neo và bí danh được phân giải thành các giá trị trùng lặp trong JSON vì JSON không có cú pháp tham chiếu.

Thực tiễn tốt nhất

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

Việc chuyển đổi YAML sang JSON có làm thay đổi nội dung không?
Nội dung được bảo quản chính xác nhất có thể. Tuy nhiên, một số tính năng dành riêng cho định dạng có thể không có tính năng tương đương trực tiếp, do đó có thể xảy ra những khác biệt nhỏ về định dạng.
Tại sao chuyển đổi dữ liệu sang định dạng JSON?
JSON là định dạng dữ liệu tiêu chuẩn cho API web và ứng dụng JavaScript. Nó dễ đọc, được hỗ trợ rộng rãi bởi các ngôn ngữ lập trình và có cú pháp đơn giản hơn XML.
Bộ chuyển đổi có xử lý các cấu trúc YAML lồng nhau hoặc phức tạp không?
Đúng. Công cụ này phân tích cú pháp chính xác các đối tượng lồng nhau, mảng và tất cả các kiểu dữ liệu YAML tiêu chuẩn, bảo toàn cấu trúc dữ liệu đầy đủ trong đầu ra JSON.
Việc chuyển đổi này có an toàn và riêng tư không?
Đúng. Tất cả quá trình xử lý diễn ra cục bộ trong trình duyệt của bạn. Dữ liệu của bạn không bao giờ rời khỏi thiết bị của bạn — không cần tải lên máy chủ, không xử lý đám mây, không thu thập dữ liệu.
Chuyến đi khứ hồi YAML của tôi có sạch sẽ không?
Về mặt cấu trúc là có nếu bạn phát lại JSON trở lại YAML. Bình luận và cấu trúc neo bị mất; giá trị thô được bảo tồn.
Dữ liệu của tôi có được tải lên máy chủ không?
Không. js-yaml chạy trong trình duyệt của bạn.
Kích thước tối đa là bao nhiêu?
Lên đến 50 MB. js-yaml xử lý các tệp cấu hình thông thường ngay lập tức; YAML rất lớn có thể mất nhiều thời gian để phân tích cú pháp.
Nó có hỗ trợ YAML đa tài liệu không?
YAML hỗ trợ nhiều tài liệu trong một tệp được phân tách bằng ---. Bộ chuyển đổi xử lý tài liệu đầu tiên theo mặc định; để xử lý nhiều tài liệu, trước tiên hãy chia YAML.