ReSuMeYaDev

เครื่องมือนักพัฒนา

แปลง YAML ↔ JSON — สองทิศทาง

แปลง YAML เป็น JSON หรือ JSON เป็น YAML ทั้งสองทาง รองรับ Docker Compose, Kubernetes manifests, GitHub Actions workflows — ทำงานบนเบราว์เซอร์

  • ใช้งานฟรี
  • สองทิศทาง
  • K8s/Compose/CI
  • รองรับมือถือ

YAML vs JSON

YAML กับ JSON ต่างกันยังไง?

YAML (YAML Ain't Markup Language) และ JSON (JavaScript Object Notation) เป็น data serialization format ทั้งคู่ เก็บข้อมูลแบบ key-value, list, nested structure ได้เหมือนกัน แต่รูปแบบการเขียนต่างกัน — YAML ใช้ indent (whitespace) ส่วน JSON ใช้เครื่องหมาย {} และ []

YAML อ่านง่ายกว่าสำหรับคน รองรับ comment และ multi-line string เหมาะกับ config file ส่วน JSON เหมาะกับ API response และเก็บในฐานข้อมูลเพราะ parse เร็วและไม่กำกวม

เลือกใช้

เมื่อไหร่ควรใช้ YAML vs JSON

  • YAML — Docker Compose, Kubernetes manifests, GitHub Actions workflows, Ansible playbooks
  • YAML — config file ที่มนุษย์แก้ไขบ่อย เพราะรองรับ comment
  • JSON — HTTP API request/response body
  • JSON — เก็บข้อมูลในฐานข้อมูล (JSONB ใน PostgreSQL, MongoDB documents)
  • JSON — package.json, tsconfig.json, eslint.config.json

Syntax

Syntax ต่างกันหลักๆ

  • YAML: key: value — JSON: "key": "value"
  • YAML: ใช้ indent 2 spaces — JSON: ใช้ { } และ [ ]
  • YAML: - item สำหรับ array — JSON: [ "item" ]
  • YAML: รองรับ # comment — JSON: ไม่มี comment (ต้องใช้ JSONC)
  • YAML: multi-line string ด้วย | หรือ > — JSON: ต้อง escape \n

กรณีใช้งาน

กรณีใช้งาน

  • แปลง docker-compose.yml เป็น JSON เพื่อ validate ใน script
  • แปลง JSON API response เป็น YAML เพื่อใส่ใน config file ที่อ่านง่าย
  • แปลง Kubernetes manifest ระหว่าง format เพื่อเข้ากับ tool ที่แตกต่างกัน
  • Debug GitHub Actions workflow โดยแปลง YAML เป็น JSON แล้วตรวจ structure
  • Port config ระหว่างระบบที่ใช้ format ต่างกัน เช่น Terraform (HCL/JSON) ↔ Kubernetes (YAML)

เคล็ดลับ

เคล็ดลับ

  • YAML sensitive กับ indent มาก — ผิด 1 space ก็ parse ไม่ผ่าน ให้ใช้ 2 spaces ตลอด ไม่ผสม tab
  • YAML ตีความ yes/no/true/false เป็น boolean — ถ้าต้องการ string ให้ใส่ quote: "yes"
  • JSON มาตรฐานไม่รองรับ trailing comma — ตัวแปลงจะ error ถ้าเจอ
  • ใช้ JSON สำหรับ data transfer, ใช้ YAML สำหรับ config file ที่คนแก้ไข
  • ตรวจ JSON ใน Postman/curl, ตรวจ YAML ใน yamllint หรือ kubectl --dry-run

FAQ

คำถามที่พบบ่อย

01 แปลงแล้ว comment หายไหม?

JSON มาตรฐานไม่รองรับ comment ดังนั้นเมื่อแปลงจาก YAML → JSON, comment จะหายไป — ถ้าแปลงกลับ JSON → YAML comment ก็ไม่มาให้

02 ข้อมูลถูกส่งขึ้น server ไหม?

ไม่ การแปลงทำในเบราว์เซอร์ทั้งหมด ข้อมูลไม่ออกจากเครื่อง ปลอดภัยกับ config file ที่มี secret

03 รองรับ YAML 1.2 ไหม?

รองรับ YAML 1.2 spec ซึ่งเป็น superset ของ JSON — JSON ทุกไฟล์เป็น valid YAML โดยอัตโนมัติ

04 Docker Compose version 3.8 แปลงได้ไหม?

ได้ YAML มาตรฐานทุก version แปลงได้ ระวังแค่ว่า JSON output จะยาวกว่า YAML เพราะต้องใส่ { } ": " เพิ่ม

05 ทำไม YAML ที่ valid กลายเป็น error เวลาแปลง?

มักเกิดจาก indent ผิด (mix tab กับ spaces) หรือใช้ reserved keyword เช่น on/off/yes/no โดยไม่ quote ลอง paste ใน yamllint ก่อน

อ้างอิง

  1. yaml.org — YAML 1.2 Specification
  2. json.org — The JSON Data Interchange Syntax (RFC 8259)
  3. js-yaml npm package — YAML parser for JavaScript

แปลงทำงานในเบราว์เซอร์ล้วน ไม่ส่งข้อมูลออก YAML comment จะหายเมื่อแปลงเป็น JSON ควรสำรองไฟล์ต้นฉบับก่อนแปลง

นักพัฒนา

เครื่องมือคำนวณฟรีอื่น ๆ ที่คุณอาจสนใจ

ดูทั้งหมดในหมวดนี้

ต้องการเครื่องมือคำนวณสำหรับธุรกิจของคุณ?

ReSuMeYaDev รับพัฒนาเว็บไซต์ เครื่องมือคำนวณ และระบบภายในตามความต้องการ — Laravel, Vue, Nuxt, Go, Rust