Bộ chuyển đổi JSON sang YAML

Dán JSON bên trái, nhận YAML 1.2 với thụt lề nhất quán bên phải. Chạy trong trình duyệt của bạn — không tải lên.

  1. Dán JSON vào vùng văn bản bên trái.
  2. Bấm "Chuyển sang YAML". Đầu ra YAML xuất hiện ở bên phải.
  3. Sao chép kết quả hoặc bấm Tải xuống để lưu dưới dạng data.yaml.
  4. Nếu JSON không hợp lệ, thông báo lỗi sẽ chỉ ra vị trí lỗi.
Công cụ này làm gì?

Chuyển JSON sang YAML 1.2 tương đương. Đối tượng trở thành mapping, mảng trở thành sequence, và số/boolean/null/chuỗi giữ nguyên kiểu. Đầu ra mặc định dùng thụt lề 2 khoảng trắng và độ rộng dòng 100 cột. Đi vòng JSON → YAML → JSON cho dữ liệu giống nhau về ngữ nghĩa, mặc dù bình luận và sắc thái thứ tự là hạn chế phía JSON cần lưu ý.

Ví dụ

Đầu vào JSON:

{"name":"Ada","tags":["math","logic"],"active":true}

Đầu ra YAML:

name: Ada
tags:
  - math
  - logic
active: true

Lỗi JSON thường gặp và cách khắc phục

JSON phải hợp lệ trước khi công cụ này có thể chuyển sang YAML. Bộ phân tích chỉ ra dòng và cột của bất kỳ lỗi nào — những mẫu này chiếm gần như mọi lỗi "JSON không hợp lệ".

  • Dấu phẩy cuối. `{"a": 1, "b": 2,}` không hợp lệ. JSON không cho phép dấu phẩy sau phần tử cuối cùng của đối tượng hoặc mảng.
  • Dấu nháy đơn. `{'a': 1}` không hợp lệ. Chuỗi và khóa JSON phải dùng dấu nháy đôi.
  • Khóa không có dấu nháy. `{a: 1}` không hợp lệ — biểu diễn đối tượng JavaScript cho phép điều này, nhưng JSON thì không. Bọc khóa trong dấu nháy đôi.
  • Bình luận. Bình luận // hoặc /* */ không được phép trong JSON nghiêm ngặt. Bỏ chúng trước khi chuyển, hoặc dùng đầu ra YAML (hỗ trợ bình luận #) và dán lại bán thủ công.
  • Dấu nháy thông minh. Sao chép-dán từ trình xử lý văn bản đôi khi thay " bằng dấu nháy cong — JSON từ chối. Gõ lại hoặc dán qua trình soạn thảo văn bản thuần.
  • NaN / Infinity. JSON không có biểu diễn cho NaN, Infinity hay -Infinity. Nếu dữ liệu của bạn chứa, hãy chọn: tuần tự hóa thành null (mất thông tin) hoặc thành chuỗi "NaN" (giữ ý định nhưng đổi kiểu).
Câu hỏi thường gặp

Tại sao đầu ra YAML của tôi không có bình luận?

JSON không có cú pháp bình luận, nên không có bình luận để mang theo. Nếu bạn muốn YAML có bình luận, sửa đầu ra bằng tay sau khi chuyển. Một số nhóm mã hóa bình luận thành trường `_comment` trong JSON, nhưng chúng trở thành khóa thông thường trong YAML — không phải bình luận thực sự.

Thứ tự khóa của tôi có được giữ không?

Có. Thứ tự khóa của đối tượng JSON được giữ làm thứ tự mapping YAML — giống JSON.parse + JSON.stringify trên các trình duyệt hiện đại, vốn giữ thứ tự chèn. Nếu cần sắp xếp theo bảng chữ cái, hãy sắp xếp JSON trước.

Cấu trúc lồng nhau sâu được định dạng thế nào?

Đầu ra YAML dùng thụt lề 2 khoảng trắng mỗi cấp, với chuỗi ở kiểu khối (mỗi mục một dòng, có tiền tố `-`). Đối tượng và mảng rỗng được biểu diễn lần lượt là `{}` và `[]` — kiểu flow, vì kiểu khối sẽ mơ hồ với rỗng.

Có hỗ trợ dữ liệu nhị phân không?

JSON không có kiểu nhị phân bản địa, nên nhị phân thường đã được mã hóa thành chuỗi base64 trong đầu vào. Đầu ra YAML giữ chuỗi đó. Nếu bạn thật sự cần định dạng nhị phân YAML (`!!binary`), bộ chuyển đổi không tạo ra — hãy giữ phương pháp chuỗi base64.

Có an toàn cho JSON nhạy cảm như khóa API không?

Có. Mọi thứ chạy trong trình duyệt của bạn. Đầu vào của bạn được phân tích và chuyển đổi bởi JavaScript trên trang này; không có máy chủ nào được liên hệ. Xác nhận trong công cụ phát triển của trình duyệt — không có yêu cầu mạng nào khi bấm Chuyển.

Tôi có thể đi vòng JSON → YAML → JSON không?

Đối với dữ liệu, có — ngữ nghĩa được giữ. Đối với văn bản tương đương từng byte, không — khoảng trắng và trích dẫn được chuẩn hóa. Nếu cần dạng chuẩn ổn định, chạy JSON.stringify với khóa đã sắp xếp trước khi dán.