แปลงรูปแบบ YAML เป็น JSON
อ่านเอกสาร YAML หนึ่งฉบับด้วยไลบรารี yaml (สคีมา core ของ YAML 1.2) แล้วส่งออกเป็น JSON แบบเยื้อง ลบคอมเมนต์ ขยาย anchors และ aliases และคงค่าอย่าง yes หรือ 2024-01-01 เป็นสตริง
ส่งการตั้งค่าที่เขียนด้วย YAML ไปยัง API หรือตัวตรวจสอบ JSON Schema ที่รับเฉพาะ JSON
เหมาะกับงานแบบไหน
- ส่งการตั้งค่าที่เขียนด้วย YAML ไปยัง API หรือตัวตรวจสอบ JSON Schema ที่รับเฉพาะ JSON
- ตรวจชนิดข้อมูลจริงในไฟล์ CI หรือ Kubernetes เช่น เวอร์ชันเป็นสตริงหรือตัวเลข
วิธีใช้
- วางเอกสาร YAML เดียวหรือโหลดไฟล์ .yaml/.yml
- หากมีข้อผิดพลาด ให้ตรวจการเยื้อง คีย์ซ้ำ และตัวคั่น --- ที่บรรทัดที่แจ้ง
- ตรวจสตริงและตัวเลขในผลลัพธ์ JSON แล้วคัดลอก
ข้อมูลเข้า YAML
# deployment settings service: billing-api replicas: 2 version: "1.10" enabled: yes ports: - 80 - 443 env: LOG_LEVEL: info
JSON
{
"service": "billing-api",
"replicas": 2,
"version": "1.10",
"enabled": "yes",
"ports": [
80,
443
],
"env": {
"LOG_LEVEL": "info"
}
}รายละเอียดและข้อจำกัด
อ่านข้อมูลในเบราว์เซอร์ ผลลัพธ์เป็น JSON เยื้อง 2 ช่องว่างเสมอ ไม่มีตัวเลือกย่อข้อมูล
ใช้กฎ YAML 1.2 โดย yes/no/on/off เป็นสตริง ไม่ใช่บูลีน และวันที่ที่ไม่ครอบเครื่องหมายคำพูดยังเป็นสตริง ส่วน 0o17 เป็นเลขฐานแปด (15)
คีย์รวม (<<: *anchor) จะไม่ถูกรวม แต่แสดงเป็นคีย์ "<<" ตามตัวอักษร คีย์ซ้ำใน mapping เดียวถือเป็นข้อผิดพลาด
จำนวนเต็มที่เกิน 2^53 สูญเสียความแม่นยำใน JSON ควรครอบ ID ยาวด้วยเครื่องหมายคำพูดใน YAML
FAQ
แปลงไฟล์ที่มีหลายเอกสารคั่นด้วย --- ได้หรือไม่?
ไม่ได้ หลายเอกสารทำให้เกิดข้อผิดพลาด "Source contains multiple documents" ให้วางทีละเอกสาร โดยมี --- นำหน้าเพียงตัวเดียวได้
ทำไม enabled: yes จึงเป็นสตริงใน JSON?
ตัวแยกวิเคราะห์ใช้ YAML 1.2 ซึ่งมีเพียง true และ false ที่เป็นบูลีน เขียน true/false หากต้องการบูลีน JSON
รองรับ anchors และ aliases หรือไม่?
รองรับ alias เช่น *base จะถูกแทนด้วยสำเนาของค่าที่ anchor อ้างถึง แต่ไม่ใช้คีย์รวม << ของ YAML 1.1