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
วิธีการใช้งาน
- วาง YAML ลงในแผงด้านซ้ายหรืออัปโหลดไฟล์ .yaml / .yml / .txt
- หลังจาก 400 ms เครื่องมือจะแสดงผล JSON ในแผงด้านขวาโดยอัตโนมัติ
- หากต้องการ สามารถสลับระหว่าง pretty output และ compact output ได้
- ถ้ามี error ให้ใช้ปุ่มซ่อมโครงสร้างเพื่อแก้ปัญหา YAML ทั่วไปอัตโนมัติ
- คัดลอกผลลัพธ์หรือดาวน์โหลดเป็น 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 | กฎการแปลง |
|---|---|---|---|
| string | name: Alice | "name": "Alice" | สตริงจะกลายเป็นสตริง JSON |
| number | age: 30 | "age": 30 | ตัวเลขจะคงเป็นตัวเลข JSON |
| boolean | enabled: true | "enabled": true | true / false จะกลายเป็น boolean JSON |
| sequence | - a
- b | ["a", "b"] | list ของ YAML จะกลายเป็น array JSON |
| mapping | user:
name: Alice | {"user": {"name": "Alice"}} | mapping ของ YAML จะกลายเป็น object JSON |
เปรียบเทียบ YAML กับ JSON
ทั้งสองรูปแบบใช้เก็บข้อมูลเหมือนกัน แต่ต่างกันด้านการอ่านและการใช้งาน
| หัวข้อ | YAML | JSON | หมายเหตุ |
|---|---|---|---|
| ความอ่านง่าย | สูง | ปานกลาง | YAML เหมาะกับไฟล์คอนฟิกที่มนุษย์ต้องอ่าน |
| คอมเมนต์ | # รองรับ | ไม่รองรับ | JSON มาตรฐานไม่มีคอมเมนต์ |
| อาเรย์ | - item | [item] | YAML ใช้ขีดกลาง ส่วน JSON ใช้วงเล็บเหลี่ยม |
| การใช้งานหลัก | คอนฟิก | API / ข้อมูล | YAML เด่นเรื่องคอนฟิก ส่วน JSON เด่นเรื่องส่งข้อมูล |
ข้อผิดพลาด YAML ที่ซ่อมอัตโนมัติได้
tryFixYAML สามารถช่วยแก้ปัญหาพื้นฐานต่อไปนี้
| ประเภทปัญหา | ตัวอย่าง | หลังซ่อม | คำอธิบาย |
|---|---|---|---|
| Tab | key:
value | key:
value | แท็บจะถูกแทนที่ด้วยช่องว่าง |
| Quote ไม่ปิด | key: 'value | key: 'value' | เติม quote ที่ขาดให้ครบ |
| ช่องว่างท้ายบรรทัด | key: value | key: value | ลบช่องว่างเกินที่ท้ายบรรทัด |
| การเยื้องผิด | key:
value | key:
value | จัดการเยื้องให้ถูกต้อง |
Privacy & Security
เครื่องมือ YAML เป็น JSON นี้ทำงาน parse YAML, serialize JSON และซ่อมข้อผิดพลาดทั้งหมดด้วย JavaScript ภายในเบราว์เซอร์ของคุณ ข้อมูล YAML ที่ป้อนและ JSON ที่สร้างขึ้นจะไม่ถูกส่งไปยังเซิร์ฟเวอร์ จึงเหมาะกับการจัดการคอนฟิกที่อ่อนไหว เช่น Kubernetes secret, API key หรือข้อมูลเชื่อมต่อฐานข้อมูลภายในเครื่องของคุณเอง
Authoritative References
- YAML.orgสเปก YAML 1.2
- GitHubคลัง js-yaml บน GitHub
- Kubernetesเอกสารการตั้งค่า Kubernetes
- Dockerสเปกไฟล์ Docker Compose
- Ansibleคู่มือ YAML สำหรับ Ansible
- บีบอัด JSON
- แปลง CSV เป็น JSON
- JSON เป็น CSV
- JSON Diff
- JSON Escape / Unescape
- แฟลตเทน JSON
- จัดรูปแบบ JSON
- เครื่องมือสร้าง JSON
- คิวรี JSONPath
- รวม JSON
- ซ่อมแซม JSON
- ตัวตรวจสอบ JSON Schema
- เรียง JSON
- JSON Stringify
- JSON เป็น HTML
- JSON เป็น Java
- JSON เป็น Markdown
- แปลง JSON เป็น SQL
- JSON เป็น TOML
- JSON เป็น TypeScript
- แปลง XML เป็น JSON
- แปลง JSON เป็น XML
- YAML เป็น JSON
- JSON → YAML
- JSON เป็น Go
- JSON เป็น Rust
- JSON to Swift
- JSON เป็น C#
- JSON เป็น C++
- JSON เป็น PHP
- JSON เป็น Python