Chuyển đổi YAML và JSON

Chuyển đổi cục bộ một tập con giới hạn của YAML 1.2 và JSON, giữ nguyên biểu diễn văn bản của số và từ chối cấu trúc không được hỗ trợ thay vì âm thầm làm mất dữ liệu.

Trang này hiển thị các công cụ có sẵn bằng ngôn ngữ này trong phạm vi hiện tại. Điều đó không có nghĩa mọi công cụ trên trang web đều đã được dịch sang mọi ngôn ngữ.

Dữ liệu được xử lý trong trình duyệt, không tải lên và không lưu tự động. Việc đọc tệp có thời hạn riêng 5 giây; sau đó, một worker duy nhất có thể hủy có 5 giây để chuyển đổi. Không mở liên kết hoặc thực thi nội dung.

Đầu vào tối đa 256 KiB theo UTF-8; đầu ra tối đa 2 MiB. Độ sâu 32 cấp, 500 cặp mỗi ánh xạ, 30 000 nút CST hoặc AST và 120 000 đơn vị từ vựng. Chuỗi đã giải mã: 65 536 đơn vị UTF-16; biểu diễn văn bản của số: 1024 ký tự. Đây không phải giới hạn cho toàn bộ bộ nhớ trình duyệt.

Chỉ hỗ trợ một tập con giới hạn của YAML 1.2: khóa chuỗi không trùng lặp, dãy, ánh xạ và giá trị JSON. Từ chối định nghĩa neo (anchors), tham chiếu bí danh (aliases), thẻ tường minh (tags), chỉ thị (directives), hợp nhất ánh xạ (merge), nhiều tài liệu, khóa không phải chuỗi, NaN và Infinity. Dùng ánh xạ tường minh trong dãy, chẳng hạn [{a: b}].

Biểu diễn văn bản của số JSON lớn, số thập phân và số có số mũ được giữ nguyên, không chuyển sang Number, kể cả -0 và 1e400. Các dạng số YAML được hỗ trợ được chuẩn hóa dưới dạng văn bản; số hệ mười sáu và hệ tám không dấu được chuyển bằng BigInt. yes, on và ngày không có dấu nháy vẫn là chuỗi; không bật quy tắc YAML 1.1.

Cách sử dụng

Chọn chiều chuyển đổi và nguồn đầu vào. Dán văn bản hoặc chọn tệp UTF-8 cục bộ, rồi chuyển đổi và kiểm tra phần xem trước cùng thông báo mất kiểu trình bày. Chủ động sao chép toàn bộ kết quả hoặc tải converted.json hay converted.yaml. Văn bản quá dài hoặc tệp không đọc được vẫn bị từ chối cho đến khi sửa chính đầu vào đó; đổi tùy chọn khác không xử lý lại giá trị cũ. Có thể hủy việc đọc hoặc chuyển đổi; tệp gốc không thay đổi.

Thử ví dụ

YAML n: 9007199254740993 tạo JSON giữ chính xác số đó. JSON {"n":1e400,"name":"Tiếng Việt"} tạo YAML giữ 1e400, không chuyển thành Infinity. .5 trở thành 0.5 và 0o10 trở thành 8, còn yes và ngày 2026-09-25 vẫn là chuỗi.

Phạm vi hỗ trợ và giới hạn

Các giá trị, thứ tự ánh xạ và dãy, cùng biểu diễn số theo ngữ pháp JSON được giữ lại mà không chuyển sang Number. Dạng số YAML được hỗ trợ được chuẩn hóa bằng văn bản; số hệ mười sáu và hệ tám không dấu dùng BigInt. Không dùng quy tắc YAML 1.1; không giữ chú thích, kiểu trình bày, dấu nháy hoặc dấu xuống dòng gốc. Đầu ra là UTF-8 không có BOM và có LF ở cuối. Từ chối aliases, anchors, thẻ tường minh kể cả !!str, chỉ thị, nhiều tài liệu, merge, khóa không phải chuỗi hoặc bị trùng, NaN/Infinity và cặp viết tắt như [a: b]; hãy dùng ánh xạ tường minh. Tệp phải có UTF-8 hợp lệ; BOM đầu vào được giữ và được YAML chấp nhận ở đầu, nhưng JSON từ chối. Phần xem trước chỉ là văn bản và có thể kết thúc giữa một ký tự tổ hợp; bảng nhớ tạm có thể thay đổi dấu xuống dòng tùy hệ thống. Không tải lên, lưu, thực thi nội dung hoặc truy cập liên kết.

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

Công cụ có hỗ trợ toàn bộ YAML hoặc tự sửa tài liệu không?

Không. Công cụ chuyển đổi tập con YAML 1.2 đã nêu có thể biểu diễn bằng giá trị JSON và từ chối đầu vào không được hỗ trợ hoặc vượt giới hạn. Chuyển đổi không phải là làm sạch nội dung để bảo đảm an toàn hay kiểm tra lược đồ dữ liệu, và không bảo đảm ứng dụng khác đọc số lớn mà không làm tròn. Xử lý có giới hạn không bảo đảm mức trần cho toàn bộ bộ nhớ trình duyệt.

Công cụ liên quan