YAML เป็น JSON

เครื่องมือออนไลน์ฟรีนี้ช่วยแปลง YAML ให้เป็น JSON object มาตรฐานด้วยไลบรารี js-yaml โดย mapping และ list ใน YAML จะถูกแปลงเป็น object และ array JSON อัตโนมัติ และคุณสามารถสลับ pretty output ได้ตามต้องการ นอกจากนี้ tryFixYAML ยังช่วยซ่อม 5 ปัญหายอดฮิต เช่น tab, quote ที่ไม่ปิด, การเยื้องผิด, รูปแบบ key และช่องว่างท้ายบรรทัด

คำแนะนำที่เกี่ยวข้อง

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

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

กระบวนการแปลงใช้ js-yaml ในการ parse YAML ให้เป็น object ของ JavaScript ก่อน แล้วจึง serialize ออกมาเป็น JSON โดย mapping ของ YAML จะกลายเป็น JSON object, list จะกลายเป็น array และ string, number, boolean, null จะถูกแปลงเป็นชนิดที่สอดคล้องกัน

โหมด pretty จะสร้าง JSON ที่อ่านง่ายด้วยการเยื้อง 2 ช่อง ส่วนโหมด compact จะให้ JSON แบบบรรทัดเดียว เหมาะกับการส่งผ่าน API, การจัดเก็บ หรือการส่งต่อข้อมูล

ในไฟล์ YAML จริง มักมีปัญหาอย่าง tab, quote ไม่ปิด, การเยื้องผิด หรือชื่อ key ที่ parse ยาก ฟังก์ชัน tryFixYAML ที่มีมาให้จะช่วยซ่อม 5 ปัญหายอดนิยมเหล่านี้ได้ในเบราว์เซอร์ทันที

กรณีการใช้งาน

  • แปลง Kubernetes manifest หรือ Helm values.yaml เป็น JSON เพื่อใช้กับ jq, validation หรือ CI/CD
  • แปลง docker-compose.yml เป็น JSON เพื่อส่งต่อให้เครื่องมือหรือ API อื่น
  • เปรียบเทียบและประมวลผล workflow YAML ของ GitHub Actions หรือ GitLab CI ในรูปแบบ JSON
  • แปลง Ansible playbook หรือไฟล์ monitoring เป็น JSON เพื่อประมวลผลด้วยโค้ด
  • แปลงสเปก OpenAPI / Swagger จาก YAML เป็น JSON สำหรับเครื่องมือสร้างโค้ด
  • เรียนรู้ความต่างด้านไวยากรณ์และชนิดข้อมูลระหว่าง YAML กับ JSON

วิธีการใช้งาน

  1. วาง YAML ลงในแผงด้านซ้ายหรืออัปโหลดไฟล์ .yaml / .yml / .txt
  2. หลังจาก 400 ms เครื่องมือจะแสดงผล JSON ในแผงด้านขวาโดยอัตโนมัติ
  3. หากต้องการ สามารถสลับระหว่าง pretty output และ compact output ได้
  4. ถ้ามี error ให้ใช้ปุ่มซ่อมโครงสร้างเพื่อแก้ปัญหา YAML ทั่วไปอัตโนมัติ
  5. คัดลอกผลลัพธ์หรือดาวน์โหลดเป็น converted.json

คุณสมบัติ

  • แยกวิเคราะห์ YAML ด้วย js-yaml รองรับ mapping, list, โครงสร้างซ้อน, ข้อความหลายบรรทัด, anchor และ alias
  • ซ่อมข้อผิดพลาด YAML ทั่วไป 5 แบบอัตโนมัติ ได้แก่ tab, quote ไม่ปิด, การเยื้องผิด, key พิเศษ และช่องว่างท้ายบรรทัด
  • รองรับทั้ง JSON แบบ pretty ที่เยื้อง 2 ช่อง และ JSON แบบบีบอัดหนึ่งบรรทัด
  • แปลงโครงสร้าง YAML ที่ซ้อนกันเป็น JSON object และ array แบบ recursive
  • ละเว้นคอมเมนต์ YAML ทำให้ผลลัพธ์มีเฉพาะข้อมูล JSON ล้วน
  • แปลงอัตโนมัติภายใน 400 ms หลังหยุดพิมพ์เพื่อดูผลได้เร็ว
  • แสดง JSON พร้อม syntax highlighting เพื่อให้อ่านผลลัพธ์ที่ซับซ้อนได้ง่ายขึ้น
  • รองรับอัปโหลดไฟล์ คัดลอก ดาวน์โหลด และกู้คืนประวัติภายในเบราว์เซอร์
  • ทุกขั้นตอนทำงานแบบโลคอล ไม่ส่งข้อมูลคอนฟิกไปยังเซิร์ฟเวอร์

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

จะแปลง YAML เป็น JSON ได้อย่างไร?

วาง YAML ลงในแผงด้านซ้ายหรืออัปโหลดไฟล์ .yaml / .yml / .txt แล้วเครื่องมือจะใช้ js-yaml ในการแยกวิเคราะห์และแปลงเป็น JSON มาตรฐานให้อัตโนมัติ โดย mapping ของ YAML จะกลายเป็น JSON object และ list จะกลายเป็น JSON array กระบวนการนี้ทำงานอัตโนมัติหลังหยุดพิมพ์ประมาณ 400 ms

คอมเมนต์ใน YAML จะถูกเก็บไว้ใน JSON หรือไม่?

ไม่เก็บไว้ คอมเมนต์ YAML ที่ขึ้นต้นด้วย # มีไว้เพื่อให้อ่านโดยมนุษย์เท่านั้น และจะถูกละเว้นตอน parse ดังนั้น JSON ที่ได้จะมีเฉพาะข้อมูลล้วน หากต้องการเก็บคำอธิบายไว้ ควรเก็บไฟล์ YAML ต้นฉบับหรือเพิ่ม field comment เองใน JSON

ถ้า YAML มีปัญหาเรื่องการเยื้องหรือ quote ไม่ปิด เครื่องมือช่วยซ่อมได้ไหม?

ได้ tryFixYAML ในตัวสามารถซ่อม 5 ปัญหาที่พบบ่อย เช่น tab, quote ไม่ปิด, การเยื้องผิด, ชื่อ key พิเศษ และช่องว่างท้ายบรรทัด อย่างไรก็ตาม ถ้าโครงสร้าง YAML เสียหายมาก ก็อาจยังต้องตรวจแก้ด้วยตนเอง

การแก้ไขปัญหา

เกิดข้อผิดพลาดตอน parse YAML

มักเกิดจากการผสม tab กับช่องว่าง, การเยื้องพัง, quote ไม่ปิด หรือขาดเครื่องหมายโคลอน ลองใช้ฟังก์ชันซ่อมโครงสร้างก่อน

คอมเมนต์ไม่ปรากฏใน JSON

JSON ไม่รองรับคอมเมนต์ ดังนั้นบรรทัด # ใน YAML จะถูกละทิ้งระหว่างการแปลง หากต้องการเก็บไว้ควรแยกเก็บต่างหาก

anchor และ alias หายไป

js-yaml จะคลี่การอ้างอิงก่อนแปลงเป็น JSON ทำให้ผลลัพธ์ JSON เหลือเพียงข้อมูลที่ถูกขยายแล้ว

วันที่กลายเป็นสตริง

แม้ YAML จะมองค่าเป็นวันที่ได้ แต่เมื่อส่งออกเป็น JSON จะถูกเขียนเป็นสตริง ISO เพราะ JSON ไม่มีชนิด Date ในตัว

ไฟล์ YAML หลายเอกสาร

เครื่องมือนี้เน้นแปลงครั้งละหนึ่งเอกสาร หากไฟล์มี --- คั่นหลายเอกสาร ควรแยกแล้วแปลงทีละส่วน

อภิธานศัพท์

YAML
รูปแบบการทำ serialization ของข้อมูลที่มนุษย์อ่านง่าย และนิยมใช้ในไฟล์คอนฟิก DevOps
JSON
JavaScript Object Notation รูปแบบข้อมูลมาตรฐานสำหรับ API และแอปพลิเคชันเว็บ
js-yaml
ไลบรารี JavaScript ยอดนิยมสำหรับ parse YAML ให้เป็น object ของ JavaScript
Indentation
การเยื้องใน YAML ที่ใช้บอกลำดับชั้นของข้อมูล โดยทั่วไปควรใช้ช่องว่างแทน tab
Anchor
ไวยากรณ์ &name ใน YAML สำหรับกำหนดค่าที่สามารถนำกลับมาใช้ซ้ำได้
Alias
ไวยากรณ์ *name ใน YAML สำหรับอ้างอิง anchor ที่ประกาศไว้ก่อนหน้า
Pretty Output
โหมดแสดงผล JSON แบบมีการเยื้องและขึ้นบรรทัดใหม่เพื่อให้อ่านง่าย
tryFixYAML
กลไกในตัวที่ช่วยซ่อมข้อผิดพลาด YAML ทั่วไปก่อนแปลง

การแมปชนิดข้อมูล YAML ไปเป็น JSON

โครงสร้างพื้นฐานของ YAML จะถูกแปลงเป็น JSON ตามกฎต่อไปนี้

ชนิด YAMLตัวอย่าง YAMLผลลัพธ์ JSONกฎการแปลง
stringname: Alice"name": "Alice"สตริงจะกลายเป็นสตริง JSON
numberage: 30"age": 30ตัวเลขจะคงเป็นตัวเลข JSON
booleanenabled: true"enabled": truetrue / false จะกลายเป็น boolean JSON
sequence- a - b["a", "b"]list ของ YAML จะกลายเป็น array JSON
mappinguser: name: Alice{"user": {"name": "Alice"}}mapping ของ YAML จะกลายเป็น object JSON

เปรียบเทียบ YAML กับ JSON

ทั้งสองรูปแบบใช้เก็บข้อมูลเหมือนกัน แต่ต่างกันด้านการอ่านและการใช้งาน

หัวข้อYAMLJSONหมายเหตุ
ความอ่านง่ายสูงปานกลางYAML เหมาะกับไฟล์คอนฟิกที่มนุษย์ต้องอ่าน
คอมเมนต์# รองรับไม่รองรับJSON มาตรฐานไม่มีคอมเมนต์
อาเรย์- item[item]YAML ใช้ขีดกลาง ส่วน JSON ใช้วงเล็บเหลี่ยม
การใช้งานหลักคอนฟิกAPI / ข้อมูลYAML เด่นเรื่องคอนฟิก ส่วน JSON เด่นเรื่องส่งข้อมูล

ข้อผิดพลาด YAML ที่ซ่อมอัตโนมัติได้

tryFixYAML สามารถช่วยแก้ปัญหาพื้นฐานต่อไปนี้

ประเภทปัญหาตัวอย่างหลังซ่อมคำอธิบาย
Tabkey: valuekey: valueแท็บจะถูกแทนที่ด้วยช่องว่าง
Quote ไม่ปิดkey: 'valuekey: 'value'เติม quote ที่ขาดให้ครบ
ช่องว่างท้ายบรรทัดkey: value key: valueลบช่องว่างเกินที่ท้ายบรรทัด
การเยื้องผิด key: valuekey: valueจัดการเยื้องให้ถูกต้อง

Privacy & Security

เครื่องมือ YAML เป็น JSON นี้ทำงาน parse YAML, serialize JSON และซ่อมข้อผิดพลาดทั้งหมดด้วย JavaScript ภายในเบราว์เซอร์ของคุณ ข้อมูล YAML ที่ป้อนและ JSON ที่สร้างขึ้นจะไม่ถูกส่งไปยังเซิร์ฟเวอร์ จึงเหมาะกับการจัดการคอนฟิกที่อ่อนไหว เช่น Kubernetes secret, API key หรือข้อมูลเชื่อมต่อฐานข้อมูลภายในเครื่องของคุณเอง

Authoritative References