JSON เป็น YAML

วาง JSON แล้วรับ YAML ที่สะอาดกลับมา, การเยื้องสองช่องว่างที่ถูกต้อง สตริงจะถูกใส่เครื่องหมายคำพูดเฉพาะเมื่อจำเป็น ค่าหลายบรรทัดจะแสดงเป็น block scalar และมีตัวเลือกเรียงคีย์ตามตัวอักษร มีประโยชน์สำหรับการแปลงผลตอบกลับของ API ให้เป็น Kubernetes manifest, config ของ GitHub Actions หรือเครื่องมือใดก็ตามที่ใช้ YAML เป็นหลัก

วิธีแปลง JSON เป็น YAML

  1. 1

    วาง JSON

    JSON ที่ถูกต้องใดก็ได้ ตัวแปลงจะรักษาโครงสร้างเชิงความหมายไว้อย่างแม่นยำ

  2. 2

    เลือกการเยื้องและสไตล์

    2 หรือ 4 ช่องว่าง, flow style สำหรับ array/object แบบกระชับ หรือ block style สำหรับรูปแบบยาว

  3. 3

    ตัวเลือก: เรียงคีย์

    การเรียงตามตัวอักษรทำให้ YAML ทำ diff ระหว่างสองเวอร์ชันได้ง่ายขึ้น

  4. 4

    คัดลอก YAML

    วางลงในไฟล์ `.yaml` / `.yml` ของคุณ เอาต์พุตเป็น YAML 1.2 ที่ถูกต้อง

ตัวอย่าง

อินพุต:

{
  "name": "hyperion",
  "replicas": 3,
  "env": { "DEBUG": "false", "LOG_LEVEL": "info" },
  "command": ["php", "artisan", "queue:work"]
}

เอาต์พุต:

name: hyperion
replicas: 3
env:
  DEBUG: "false"
  LOG_LEVEL: info
command:
  - php
  - artisan
  - queue:work

การจับคู่ชนิดข้อมูล

JSON YAML
string ไม่มีเครื่องหมายคำพูด มีเครื่องหมายคำพูด หรือ block scalar ตามความจำเป็น
integer 42
number 3.14
boolean true / false
null null (หรือ ~, หรือเว้นว่าง)
array block sequence ด้วย - หรือ flow [...]
object block mapping ด้วย key: value หรือ flow {...}

เมื่อสตริงต้องการเครื่องหมายคำพูด

YAML ตีความสตริงบางตัวเป็นชนิดที่ไม่ใช่สตริงโดยอัตโนมัติ ค่าที่ดูเหมือนสิ่งเหล่านี้จำเป็นต้องมีเครื่องหมายคำพูด

ค่า เหตุผลที่ต้องมีเครื่องหมายคำพูด
yes, no, on, off ถูกตีความเป็น boolean (เข้ากันได้กับ YAML 1.1)
null, Null, NULL ถูกตีความเป็น null
1.23 ถูกตีความเป็นตัวเลข
2026-04-18 ถูกตีความเป็นวันที่
ช่องว่างนำหน้า/ตามหลัง จะถูกตัดออก
ขึ้นต้นด้วย *, &, ! เป็น directive ของ YAML

ตัวแปลงจะใส่เครื่องหมายคำพูดให้ค่าเหล่านี้โดยอัตโนมัติและปล่อยส่วนที่เหลือไว้โดยไม่มีเครื่องหมายคำพูดเพื่อให้อ่านง่าย

ความต่างในการออกแบบระหว่าง YAML และ JSON

  • คอมเมนต์: YAML มี (#) ส่วน JSON ไม่มี
  • Anchor/alias: YAML รองรับการอ้างอิงข้าม (&anchor / *alias) ส่วน JSON ทำซ้ำข้อมูล การแปลงไม่สามารถอนุมานสิ่งเหล่านี้ได้ ให้เพิ่มด้วยตนเองหากต้องการ
  • สตริงหลายบรรทัด: YAML มี block scalar (| รักษาบรรทัดใหม่ไว้ > พับเข้าด้วยกัน) ตัวแปลงใช้สิ่งเหล่านี้สำหรับสตริงยาว
  • การแทนค่า null: YAML อนุญาต null, ~ หรือเว้นว่าง ตัวแปลงจะแสดง null เป็นค่าเริ่มต้น

ข้อผิดพลาดที่พบบ่อย

  • “ปัญหา Norway” ของ YAML 1.1 NO ที่ไม่มีเครื่องหมายคำพูดคือ boolean false ใน YAML 1.1 ตัวแปลงสมัยใหม่ส่วนใหญ่เป็น YAML 1.2 ที่มีเฉพาะ true/false เท่านั้นที่เป็น boolean แต่เครื่องมือเก่าบางตัวยังคงสร้างปัญหา
  • ช่องว่างตามหลังในค่า YAML รักษาไว้ใน block scalar แต่ตัดออกใน plain scalar ซึ่งไม่คาดคิดหากคุณไม่รู้ว่าได้รูปแบบใดมา
  • แท็บในการเยื้อง YAML ห้ามใช้แท็บในการเยื้อง ให้ใช้ช่องว่างเสมอ
  • สตริงบรรทัดเดียวที่ยาวมาก แบ่งเป็น block scalar เพื่อให้อ่านง่าย ตัวแปลงทำสิ่งนี้โดยอัตโนมัติเมื่อเกินเกณฑ์ที่กำหนดได้

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

สตริงที่ดูเหมือนชนิด YAML อื่น (boolean, ตัวเลข, วันที่, null) ต้องมีเครื่องหมายคำพูดเพื่อคงไว้เป็นสตริง สตริงที่มีอักขระพิเศษ (ช่องว่างนำหน้า อักขระที่พิมพ์ไม่ได้) ก็ต้องมีเครื่องหมายคำพูดเช่นกัน ตัวแปลงตรวจจับและใส่เครื่องหมายคำพูดโดยอัตโนมัติเมื่อจำเป็น

YAML 1.2 เป็นค่าเริ่มต้น หากคุณต้องการความเข้ากันได้กับ YAML 1.1 (เครื่องมือเก่า ระบบ CI บางตัว) ให้เปิด “ความเข้ากันได้กับ YAML 1.1” แล้วตัวแปลงจะเพิ่มเครื่องหมายคำพูดให้ค่าที่จะเป็น boolean ภายใต้ 1.1 (yes, no, on, off)

ได้ Flow style ([1, 2, 3] และ { a: 1 }) มีให้สำหรับ array และ object แบบกระชับ ไฟล์ config ส่วนใหญ่นิยม block style เพื่อให้อ่านง่าย

เหมาะ โดยมีข้อแม้หนึ่งข้อ: YAML ของ K8s มักอาศัยคอมเมนต์และ anchor ที่ JSON ไม่สามารถแสดงได้ ให้แปลงรูปร่างข้อมูลแล้วเพิ่มคอมเมนต์ / anchor ด้วยตนเอง

เครื่องมือที่เกี่ยวข้อง

ตารางอ้างอิง ASCII

ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL

อ้างอิงตัวอักษร HTML

รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ

ตารางอ้างอิงแป้นพิมพ์ลัด

ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux

ตัวตรวจสอบอีเมล

ตรวจสอบที่อยู่อีเมล: ตรวจไวยากรณ์ RFC 5322 ค้นหา MX เรกคอร์ดแบบเรียลไทม์ พร้อมรายละเอียดส่วนท้องถิ่น โดเมน และความยาว ไม่มีการส่งอีเมลใด ๆ

เครื่องสร้างตัวอักษรสุ่ม

สร้างตัวอักษร A-Z แบบสุ่ม เลือกจำนวน ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือแบบผสม แล้วใช้กับเกม โจทย์ หรือกิจกรรมในห้องเรียน

เครื่องมือสร้าง EditorConfig

สร้างไฟล์ .editorconfig ด้วยกฎสไตล์และขนาดการเยื้อง การจบบรรทัด ชุดอักขระ และช่องว่างของคุณ เพื่อให้การจัดรูปแบบสอดคล้องกันในทุก IDE และโปรแกรมแก้ไข

เครื่องมือนี้มีให้บริการในภาษาอื่น