JSON เป็น YAML
วาง JSON แล้วรับ YAML ที่สะอาดกลับมา, การเยื้องสองช่องว่างที่ถูกต้อง สตริงจะถูกใส่เครื่องหมายคำพูดเฉพาะเมื่อจำเป็น ค่าหลายบรรทัดจะแสดงเป็น block scalar และมีตัวเลือกเรียงคีย์ตามตัวอักษร มีประโยชน์สำหรับการแปลงผลตอบกลับของ API ให้เป็น Kubernetes manifest, config ของ GitHub Actions หรือเครื่องมือใดก็ตามที่ใช้ YAML เป็นหลัก
วิธีแปลง JSON เป็น YAML
-
1
วาง JSON
JSON ที่ถูกต้องใดก็ได้ ตัวแปลงจะรักษาโครงสร้างเชิงความหมายไว้อย่างแม่นยำ
-
2
เลือกการเยื้องและสไตล์
2 หรือ 4 ช่องว่าง, flow style สำหรับ array/object แบบกระชับ หรือ block style สำหรับรูปแบบยาว
-
3
ตัวเลือก: เรียงคีย์
การเรียงตามตัวอักษรทำให้ YAML ทำ diff ระหว่างสองเวอร์ชันได้ง่ายขึ้น
-
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ที่ไม่มีเครื่องหมายคำพูดคือ booleanfalseใน 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 และโปรแกรมแก้ไข
เครื่องมือนี้มีให้บริการในภาษาอื่น
- JSON till YAML [SV]
- JSON vers YAML [FR]
- JSON naar YAML [NL]
- Chuyển đổi JSON sang YAML [VI]
- من JSON إلى YAML [AR]
- JSON ke YAML [ID]
- JSON a YAML [ES]
- JSONからYAMLへ [JA]
- JSON → YAML [KO]
- JSON zu YAML [DE]
- JSON do YAML [PL]
- JSON para YAML [PT]
- JSON в YAML [RU]
- JSON'ten YAML'a [TR]
- JSON 至 YAML [ZH]
- JSON to YAML [EN]
- JSON a YAML [IT]