CodeKitHub
Công cụ JSON

Công cụ chuyển đổi JSON ↔ YAML

Cập nhật lần cuối:

Công cụ này chuyển đổi JSON sang YAML và YAML sang JSON theo cả hai chiều, hoàn toàn ngay trong trình duyệt của bạn. Dán dữ liệu vào, chọn chiều chuyển đổi, và nhận kết quả gọn gàng với thụt lề chính xác — hữu ích khi chỉnh sửa manifest Kubernetes, file Docker Compose, workflow GitHub Actions, hoặc bất kỳ cấu hình nào được lưu dưới dạng YAML nhưng lại dễ tạo hoặc kiểm tra hơn dưới dạng JSON.

Công Cụ Này Là Gì?

YAML là định dạng được ưa chuộng cho hầu hết các file cấu hình hiện đại — manifest Kubernetes, Docker Compose, pipeline GitHub Actions và GitLab CI, playbook Ansible — vì dễ đọc hơn JSON đối với con người khi chỉnh sửa file thủ công: hầu hết key không cần đặt trong dấu ngoặc kép, không lo sai vì dấu phẩy thừa ở cuối, và có hỗ trợ chú thích (comment). Trong khi đó, JSON lại là định dạng mà hầu hết API và ngôn ngữ lập trình tạo ra và sử dụng một cách tự nhiên.

Công cụ này kết nối hai định dạng bằng js-yaml, một cách hiện thực JavaScript được sử dụng rộng rãi cho đặc tả YAML, nên việc phân tích và tạo dữ liệu tuân theo đúng những quy tắc mà các công cụ hiểu YAML như `kubectl` hay một trình chạy CI sẽ áp dụng.

Chuyển JSON sang YAML sẽ biến các đối tượng thành khối key: value có thụt lề và mảng thành các mục danh sách bắt đầu bằng dấu `-`. Chuyển YAML sang JSON thì làm ngược lại, đồng thời cũng giải quyết các kiểu viết tắt đặc trưng của YAML (như true, null, hoặc số không có dấu ngoặc kép) thành đúng kiểu dữ liệu JSON tương ứng.

Tại Sao Nên Dùng?

  • Chuyển đổi hai chiều — chuyển JSON sang YAML hoặc YAML sang JSON ngay trên cùng một màn hình.
  • Phân tích và tạo dữ liệu dựa trên chuẩn thông qua js-yaml, nên kết quả đầu ra khớp với những gì các công cụ YAML thực tế (Kubernetes, hệ thống CI, Ansible) mong đợi.
  • Xử lý đối tượng và mảng lồng nhau ở bất kỳ độ sâu nào, chuyển đổi giữa cấu trúc dựa trên thụt lề của YAML và dấu ngoặc nhọn/vuông của JSON.
  • Diễn giải chính xác các kiểu viết tắt của YAML — giá trị true/false, null và số không có dấu ngoặc kép sẽ trở thành đúng kiểu JSON tương ứng thay vì chuỗi văn bản.
  • Sao chép vào clipboard hoặc tải xuống dưới dạng file .json hoặc .yaml.
  • Xử lý 100% phía client — mọi thứ bạn dán vào không hề được tải lên bất kỳ đâu.

Cách Sử Dụng

  1. Chọn chiều chuyển đổi: "JSON → YAML" hoặc "YAML → JSON".
  2. Dán dữ liệu của bạn vào ô nhập liệu.
  3. Nhấn "Convert".
  4. Xem lại kết quả, sau đó sao chép hoặc nhấn "Download" để lưu thành file.

Ví dụ

Đầu vào

{"name":"Alice","roles":["admin","editor"],"active":true}

Đầu ra

name: Alice
roles:
  - admin
  - editor
active: true

Hãy để ý mảng trở thành một danh sách các mục có dấu gạch đầu dòng dưới "roles" như thế nào, còn giá trị boolean vẫn giữ nguyên true không có dấu ngoặc kép thay vì trở thành chuỗi "true".

Mẹo thực tế

  • Viết một manifest Kubernetes hoặc workflow GitHub Actions: phác thảo cấu trúc dưới dạng JSON trước (nhiều trình soạn thảo và công cụ AI tạo JSON đáng tin cậy hơn), sau đó chuyển sang YAML cho file cuối cùng.
  • Gỡ lỗi một cấu hình YAML đang hoạt động sai: chuyển nó sang JSON để thấy rõ giá trị nào là chuỗi, số, hay boolean — cú pháp linh hoạt của YAML có thể che giấu những lỗi sai kiểu dữ liệu vốn rất rõ ràng khi nhìn trong JSON.
  • Nếu JSON của bạn có các key chứa ký tự đặc biệt hoặc bắt đầu bằng số, js-yaml sẽ tự động đặt chúng trong dấu ngoặc kép ở kết quả YAML để đảm bảo có thể phân tích ngược lại chính xác.

Vì sao việc ép kiểu là phần khó nhất của YAML

Ưu điểm lớn nhất về tính dễ sử dụng của YAML so với JSON — không yêu cầu dấu ngoặc kép cho hầu hết giá trị — cũng chính là nguồn gốc lớn nhất của những lỗi tinh vi. Ví dụ kinh điển là "vấn đề Na Uy": trong YAML 1.1 (được nhiều trình phân tích cú pháp cũ sử dụng), một giá trị `no` không có dấu ngoặc kép được hiểu là boolean `false` chứ không phải chuỗi "no", điều này từng làm hỏng các cấu hình mã quốc gia trong thực tế có liệt kê Na Uy. Công cụ này tuân theo đặc tả YAML 1.2, vốn đã thu hẹp tập hợp các giá trị không có dấu ngoặc kép được coi là boolean chỉ còn `true` và `false` (cùng các biến thể chữ hoa/thường), giúp giảm bớt — dù không loại bỏ hoàn toàn — loại bất ngờ này. Khi không chắc chắn một giá trị sẽ được xác định kiểu như thế nào, cách an toàn nhất là đặt nó trong dấu ngoặc kép một cách tường minh trong YAML của bạn.

Câu Hỏi Thường Gặp

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

Không. JSON không có khái niệm chú thích, nên khi chuyển YAML sang JSON, mọi chú thích # trong file gốc sẽ bị loại bỏ. Nếu bạn chuyển JSON đó ngược lại thành YAML, các chú thích cũng sẽ không xuất hiện trở lại — đây là giới hạn vốn có của định dạng, không phải lỗi của công cụ.

Công cụ xử lý anchor và alias của YAML (& và *) như thế nào?

Bộ phân tích cú pháp bên dưới (js-yaml) sẽ giải quyết các anchor và alias trước khi tạo ra JSON, nên một file YAML sử dụng anchor & và alias * để tái sử dụng một khối dữ liệu sẽ được chuyển sang JSON với dữ liệu đó được mở rộng đầy đủ tại mọi vị trí được tham chiếu tới.

Vì sao số trong YAML của tôi lại biến thành chuỗi trong JSON, hoặc ngược lại?

Nếu một giá trị được đặt trong dấu ngoặc kép ở file YAML gốc (ví dụ version: "3.10"), nó sẽ được cố tình xử lý như một chuỗi — điều này quan trọng vì các số YAML không có dấu ngoặc kép như 3.10 có thể bị mất số 0 ở cuối khi được phân tích thành số thực (float). Hãy đặt giá trị trong dấu ngoặc kép ở file YAML gốc nếu bạn thực sự muốn nó được xử lý như văn bản.

Tôi có thể chuyển đổi một file YAML chứa nhiều tài liệu (ngăn cách bằng ---) không?

Công cụ này chỉ chuyển đổi một tài liệu YAML tại một thời điểm. Nếu file của bạn có nhiều tài liệu ngăn cách bằng dấu ---, hãy chuyển đổi từng phần một, hoặc xóa dấu ngăn cách và gộp chúng thành một tài liệu duy nhất trước nếu phù hợp với nhu cầu của bạn.

Dữ liệu của tôi có bị tải lên đâu không?

Không. Việc chuyển đổi diễn ra hoàn toàn trong trình duyệt của bạn thông qua thư viện js-yaml — không có gì được gửi đến máy chủ, nên bạn có thể yên tâm sử dụng với các file cấu hình thật, kể cả những file có chứa tên host nội bộ hay chi tiết hạ tầng.

Công Cụ Liên Quan