แปลงฟรี

JSON ถึง โปรแกรมแปลง YAML

แปลงโครงสร้าง JSON เป็นรูปแบบ YAML ที่สะอาด เหมาะสำหรับรายการ Kubernetes และการกำหนดค่าระบบคลาวด์

หรือ

เกี่ยวกับเครื่องมือนี้

การเปลี่ยนจาก JSON มาเป็น YAML เป็นส่วนใหญ่เกี่ยวกับการทำให้ข้อมูลอ่านง่ายขึ้นสำหรับมนุษย์ ทั้งสองรูปแบบอธิบายโครงสร้างประเภทเดียวกัน ได้แก่ วัตถุ/แผนที่ อาร์เรย์/ลำดับ สเกลาร์ แต่ไวยากรณ์ตามการเยื้องของ YAML การอ้างอิงเพิ่มเติม และการสนับสนุนความคิดเห็น ทำให้ง่ายต่อการสแกนและแก้ไขด้วยมือ ไฟล์การกำหนดค่าถือเป็นกรณีการใช้งานตามรูปแบบบัญญัติ เช่น ไฟล์ Manifest ของ Kubernetes, เวิร์กโฟลว์ CI, Playbooks แบบ Ansible และเครื่องมืออื่นๆ อีกมากมายเลือก YAML โดยเฉพาะเนื่องจากผู้แก้ไขหลักคือมนุษย์

ตัวแปลงนี้ใช้ js-yaml เพื่อทำให้วัตถุ JSON ที่แยกวิเคราะห์เป็นอนุกรมเป็น YAML ผลลัพธ์จะรักษาโครงสร้างของข้อมูลไว้อย่างแน่นอนในขณะที่ใช้แบบแผน YAML: การเยื้องสำหรับการซ้อน รายการสำหรับอาร์เรย์ คู่คีย์-ค่าสำหรับคุณสมบัติของออบเจ็กต์ การอ้างอิงสองครั้งที่เข้มงวดของ JSON นั้นผ่อนคลาย เฉพาะสตริงที่มีอักขระพิเศษหรือที่ดูเหมือนประเภทอื่นเท่านั้นที่จะถูกยกมาในเอาต์พุต

การแปลงเป็นการรักษาข้อมูล ยกเว้นในกรณีที่ YAML เพิ่มความหมาย JSON ไม่มี ไม่สามารถสร้างความคิดเห็นขึ้นใหม่ได้ (JSON ไม่มี) การอ้างอิง Anchor และนามแฝงอาจบีบอัดโครงสร้างที่ซ้ำกันแต่ไม่ได้สร้างขึ้นโดยอัตโนมัติ ผลลัพธ์จะขยายการอ้างอิงทั้งหมดแบบอินไลน์

ทำไมต้องแปลง JSON เป็น YAML

YAML สามารถอ่านได้ง่ายกว่า JSON มากสำหรับการกำหนดค่าการแก้ไขโดยมนุษย์ การเยื้องจะแทนที่การซ้อนเครื่องหมายปีกกา เครื่องหมายคำพูดเป็นทางเลือกสำหรับสตริงแบบธรรมดา และความคิดเห็นสามารถบันทึกการตั้งค่าที่ไม่ชัดเจนได้ สำหรับไฟล์ที่มนุษย์ดูแลรักษา เช่น การกำหนดค่าแอปพลิเคชัน โครงสร้างพื้นฐานตามโค้ด สร้างไปป์ไลน์ YAML มักจะเป็นรูปแบบปลายทางที่ถูกต้องเสมอ

เครื่องมือโครงสร้างพื้นฐานสมัยใหม่สนับสนุน YAML อย่างท่วมท้น Kubernetes, แผนภูมิ Helm, Ansible, GitHub Actions, GitLab CI, Docker Compose และเครื่องมืออื่นๆ อีกมากมายที่ต้องการหรือต้องใช้ YAML การแปลงการส่งออก JSON จากระบบหนึ่งไปเป็นการกำหนดค่า YAML ไปยังอีกระบบหนึ่งถือเป็นขั้นตอนการผสานรวมตามปกติ

วิธีใช้งาน

วาง JSON รับ YAML

  1. เพิ่ม JSON ของคุณ: วางข้อความ JSON หรือวางไฟล์ อินพุตต้องเป็น JSON ที่ถูกต้อง ตัวแปลงไม่ได้พยายามแยกวิเคราะห์อินพุตที่คล้ายกับ JSON ที่ละเมิดข้อมูลจำเพาะ
  2. เลือกตัวเลือก: ขนาดการเยื้องมีค่าเริ่มต้นอยู่ที่ 2 ช่องว่าง ซึ่งเป็นแบบแผน YAML ที่พบบ่อยที่สุด สไตล์โฟลว์ (คล้าย JSON ขนาดกะทัดรัด) เทียบกับสไตล์บล็อก (อิงตามการเยื้อง) สลับลักษณะเอาต์พุต — บล็อกเป็นค่าเริ่มต้นที่เป็นมิตรต่อมนุษย์
  3. แปลง: ฟังก์ชันดัมพ์ของ js-yaml จะทำให้ทรี JSON ที่แยกวิเคราะห์เป็น YAML การอ้างอิงสตริงจะใช้เฉพาะเมื่อจำเป็นเท่านั้น สตริงที่ซับซ้อนยังคงสามารถอ่านได้
  4. ดาวน์โหลดหรือคัดลอก: บันทึกเป็น .yml หรือคัดลอกไปยังคลิปบอร์ด ผลลัพธ์เป็น YAML 1.2 ที่ถูกต้องพร้อมสำหรับผู้ใช้ YAML ทุกคน

กรณีการใช้งานทั่วไป

รายละเอียดทางเทคนิค

ฟังก์ชันดัมพ์ของ js-yaml เดินแผนผังวัตถุ JavaScript และส่ง YAML โดยใช้การจัดรูปแบบที่กำหนดค่าได้ ความลึกของการเยื้อง ความกว้างของเส้น เกณฑ์สไตล์โฟลว์ และการจัดการใบเสนอราคาล้วนเป็นพารามิเตอร์ทั้งหมด การตั้งค่าเริ่มต้นจะสร้าง YAML ในรูปแบบบล็อกที่มีการเยื้อง 2 ช่องว่าง ซึ่งเป็นแบบแผนที่พบบ่อยที่สุด

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

เอาต์พุตเข้ากันได้กับ YAML 1.2 และแยกวิเคราะห์ด้วย js-yaml, PyYAML และไลบรารี YAML หลักอื่นๆ ได้อย่างหมดจด การไปกลับแบบ Idempotent (JSON → YAML → JSON) จะรักษาข้อมูลไว้ แม้ว่าการแสดง YAML จะเลือกการจัดรูปแบบตามรูปแบบบัญญัติที่อาจแตกต่างจากเทียบเท่าที่เขียนด้วยลายมือก็ตาม

แนวทางปฏิบัติที่ดีที่สุด

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

การแปลง JSON เป็น YAML เปลี่ยนแปลงเนื้อหาหรือไม่
เนื้อหาจะถูกเก็บรักษาไว้อย่างถูกต้องที่สุด อย่างไรก็ตาม คุณลักษณะเฉพาะบางรูปแบบอาจไม่เทียบเท่าโดยตรง ดังนั้นการจัดรูปแบบเล็กน้อยจึงอาจเกิดขึ้นได้
เหตุใดจึงใช้รูปแบบ YAML
YAML เป็นที่นิยมสำหรับไฟล์การกำหนดค่าเนื่องจากสามารถอ่านได้สูงและมีไวยากรณ์น้อยที่สุด เป็นมาตรฐานสำหรับ Docker Compose, Kubernetes, GitHub Actions และเครื่องมือ CI/CD มากมาย
ตัวแปลงจัดการโครงสร้าง JSON ที่ซ้อนกันหรือซับซ้อนหรือไม่
ใช่. เครื่องมือนี้แยกวิเคราะห์ออบเจ็กต์ที่ซ้อนกัน อาร์เรย์ และประเภทข้อมูล JSON มาตรฐานทั้งหมดอย่างถูกต้อง โดยคงโครงสร้างข้อมูลทั้งหมดไว้ในเอาต์พุต YAML
การแปลงนี้ปลอดภัยและเป็นส่วนตัวหรือไม่?
ใช่. การประมวลผลทั้งหมดเกิดขึ้นภายในเบราว์เซอร์ของคุณ ข้อมูลของคุณจะไม่ออกจากอุปกรณ์ของคุณ ไม่มีการอัปโหลดเซิร์ฟเวอร์ ไม่มีการประมวลผลบนคลาวด์ ไม่มีการรวบรวมข้อมูล
แล้วสตริงที่มีอักขระพิเศษล่ะ?
js-yaml เสนอราคาโดยอัตโนมัติ สตริงที่มีเครื่องหมายโคลอน แฮช หรือขีดกลางนำหน้าจะอยู่ในเครื่องหมายคำพูดเพื่อให้ YAML มีรูปแบบที่ถูกต้อง
ข้อมูลของฉันถูกอัพโหลดไปยังเซิร์ฟเวอร์หรือไม่?
ไม่ การแปลงจะทำงานในเบราว์เซอร์ของคุณโดยใช้ js-yaml
ฉันสามารถเดินทางไปกลับ JSON ไปยัง YAML และกลับได้หรือไม่
ใช่. JSON → YAML → JSON เก็บรักษาข้อมูลอย่างมีโครงสร้าง ลำดับคีย์ของ JSON ที่แปลงแล้วตรงกับอินพุต
ขนาดอินพุตสูงสุดคือเท่าใด
สูงสุด 50 เมกะไบต์ js-yaml จัดการไฟล์การกำหนดค่าทั่วไปได้ทันที