วิธีใช้งาน
- วาง YAML ลงในช่องอินพุต หรือลองใช้ตัวอย่าง
- เลือกการเยื้อง 2 หรือ 4 ช่องว่าง
- คัดลอก JSON หรือดาวน์โหลดเป็นไฟล์ .json
วิธีการทำงาน
ระบบแยกวิเคราะห์ YAML ด้วยไลบรารี yaml แบบโอเพนซอร์สโดยใช้ YAML 1.2 core schema ซึ่งเป็นสิ่งที่เครื่องมือสมัยใหม่คาดหวัง: yes, no, on และ off ยังคงเป็นสตริง และมีเพียง true กับ false เท่านั้นที่เป็นค่าบูลีน จุดยึด (&name) และนามแฝง (*name) จะถูกขยาย และคีย์ผสาน << จะถูกนำมาใช้ จำนวนการขยายนามแฝงถูกจำกัดไว้ ดังนั้นเอกสารที่จงใจทำให้ขยายตัวอย่างมหาศาลจะถูกปฏิเสธแทนที่จะทำให้หน้าเว็บค้าง
ไฟล์ที่มีหลายเอกสารคั่นด้วย --- จะกลายเป็นอาร์เรย์ JSON ที่มีหนึ่งสมาชิกต่อเอกสาร คอมเมนต์ จุดยึด และแท็กไม่มีสิ่งที่เทียบเท่าใน JSON และจะถูกตัดออก คีย์ยังคงลำดับเดิม ค่า timestamp ยังคงเป็นสตริง จำนวนเต็มที่ยาวเกินประมาณ 15 หลักจะสูญเสียความแม่นยำ เช่นเดียวกับ JSON ใดๆ ที่จัดการใน JavaScript
หาก YAML ไม่ถูกต้อง ข้อผิดพลาดแรกจะแสดงพร้อมบรรทัดและคอลัมน์ เช่น การใช้แท็บในการเยื้องหรือวงเล็บปิดที่ขาดหายไป สำหรับทิศทางตรงกันข้ามให้ใช้ JSON เป็น YAML หรือตัวแปลง JSON ⇄ YAML แบบสองทิศทาง
ตัวอย่าง
ไฟล์ CI ที่ใช้จุดยึด
รายการงานที่ใช้บล็อก defaults ร่วมกันผ่าน <<: *defaults จะกลายเป็น JSON โดยคัดลอกค่าใน defaults ไปไว้ในแต่ละงาน คุณจึงเห็นได้ชัดว่าแต่ละงานได้รับค่าอะไรบ้าง
ไฟล์ Kubernetes หลายเอกสาร
ไฟล์ที่มี Deployment และ Service คั่นด้วย --- จะกลายเป็นอาร์เรย์ JSON ที่มีออบเจกต์สองตัว พร้อมใช้งานกับ kubectl หรือ jq
คำถามที่พบบ่อย
ทำไม yes ยังคงเป็นสตริง
YAML 1.2 ซึ่งใช้ที่นี่และในเครื่องมือปัจจุบันส่วนใหญ่ ถือว่ามีเพียง true และ false เท่านั้นที่เป็นบูลีน ตัวแยกวิเคราะห์ YAML 1.1 รุ่นเก่าจะแปลง yes, no, on และ off ให้เป็นบูลีน ซึ่งก่อให้เกิดข้อผิดพลาดจำนวนมาก
เกิดอะไรขึ้นกับคอมเมนต์
JSON ไม่รองรับคอมเมนต์ จึงถูกตัดออก ตัวข้อมูลเองยังคงเหมือนเดิม
มีขีดจำกัดขนาดไฟล์ไหม
จำกัดแค่หน่วยความจำของเบราว์เซอร์คุณเท่านั้น ไฟล์ขนาดใหญ่จะถูกแปลงหลังหยุดพิมพ์ช่วงสั้น ๆ เพื่อให้หน้ายังตอบสนองได้ดี
ความเป็นส่วนตัว
การแปลงทำงานในเบราว์เซอร์ของคุณทั้งหมด YAML และ JSON ของคุณจะไม่ถูกอัปโหลดหรือจัดเก็บ