แปลง JSON เป็น YAML
เขียน JSON ใหม่ให้เป็น YAML ที่คนอ่าน ตรวจทาน และใส่คอมเมนต์ได้ อัปโหลดไฟล์ .json แล้วรับไฟล์ .yaml ที่จัดย่อหน้าเรียบร้อย โดยคีย์ ค่า และลำดับยังเหมือนเดิม พร้อมนำไปใส่ในรีโพซิทอรีได้ทันที
แปลงไฟล์ข้อมูล
หรือลากไฟล์ CSV, TSV, TXT … มาวางที่นี่ ·
สูงสุด 95 MB ต่อไฟล์· ได้สูงสุด 20 ไฟล์· ลบหลังจาก 30 นาที
ไฟล์จะถูกประมวลผลบนเซิร์ฟเวอร์ของเราและถูกลบหลังจาก 30 นาที
อักขระที่ใช้คั่นคอลัมน์ในไฟล์ CSV และไฟล์ข้อความ ทั้งตอนอ่านและตอนเขียน ค่าอัตโนมัติจะตรวจหาจากไฟล์ต้นฉบับและเขียนด้วยจุลภาค
UTF-8 ใช้ได้กับทุกภาษา เลือก UTF-8 พร้อม BOM หาก Excel บน Windows แสดงอักษรที่มีวรรณยุกต์หรืออักษรเอเชียเพี้ยนเมื่อเปิด CSV
สำหรับไฟล์ Excel, ODS และ Numbers: แปลงเฉพาะชีตแรก หรือทุกชีต (CSV หนึ่งไฟล์ต่อชีตใน ZIP หรือคีย์ JSON หนึ่งคีย์ต่อชีต)
ชื่อแท็บชีตในสเปรดชีตใหม่ ไม่เกิน 31 อักขระ
อาร์เรย์ของออบเจ็กต์จะใช้ชื่อคอลัมน์เป็นคีย์ในทุกแถว ส่วนอาร์เรย์ของอาร์เรย์จะกะทัดรัดกว่าและเก็บส่วนหัวไว้เป็นอาร์เรย์แรก
ชื่อของอิลิเมนต์ชั้นนอกที่ครอบทุกแถว โดยแต่ละแถวจะกลายเป็น <row> ภายในอิลิเมนต์นั้น
ใช้ในคำสั่ง CREATE TABLE และ INSERT ใช้ได้เฉพาะตัวอักษร ตัวเลข และขีดล่าง
การใส่เครื่องหมายคำพูดและชนิดคอลัมน์แตกต่างกันเล็กน้อยในแต่ละฐานข้อมูล ให้เลือกฐานข้อมูลที่จะนำเข้า
เขียนเซลล์วันที่ใหม่ให้เป็นรูปแบบเดียวกัน ISO (2026-10-18) ปลอดภัยที่สุดสำหรับฐานข้อมูลและโค้ด ส่วนคงเดิมจะเก็บไว้ตามที่ปรากฏในต้นฉบับ
วิธีใช้เครื่องมือนี้
- 1
เพิ่มไฟล์ JSON
อัปโหลดการตอบกลับของ API, การตั้งค่าที่ส่งออก หรือไฟล์ manifest ที่สร้างขึ้นเป็นไฟล์ .json ได้สูงสุด 20 ไฟล์ ไฟล์ละไม่เกิน 95 MB แต่ละไฟล์ต้องมีค่า JSON ที่ถูกต้องเพียงหนึ่งค่า
- 2
ใช้ค่าเริ่มต้นตามเดิม
YAML ถูกเลือกไว้แล้วภายใต้ แปลงเป็น สำหรับไฟล์คอนฟิกไม่ต้องเปลี่ยนอะไรเพิ่ม ผลลัพธ์ใช้การเยื้องสองช่องว่าง
- 3
แปลงแล้วคอมมิต
กด แปลงเป็น YAML ดาวน์โหลดไฟล์ .yaml เพิ่มคอมเมนต์ในจุดที่ผู้อ่านคนถัดไปต้องใช้ แล้วคอมมิต
แปลง JSON เป็น YAML ได้อย่างไร
อัปโหลดไฟล์ .json แล้วกด แปลงเป็น YAML ออบเจ็กต์จะกลายเป็นบล็อก key: value ที่เยื้องเข้าไป อาร์เรย์จะเป็นรายการที่ขึ้นต้นด้วยขีดกลาง และสตริงที่ YAML อาจอ่านผิดจะคงเครื่องหมายอัญประกาศไว้
ทำไมจึงควรแปลง JSON เป็น YAML สำหรับไฟล์คอนฟิก
JSON ส่วนใหญ่สร้างโดยซอฟต์แวร์ เช่น การตอบกลับของ API การส่งออกการตั้งค่า หรือผลลัพธ์ของตัวสร้าง ส่วน YAML ส่วนใหญ่ดูแลโดยคน การแปลงมักเป็นจุดที่ข้อมูลเลิกเป็นผลลัพธ์ของเครื่องและกลายเป็นสิ่งที่ทีมเป็นเจ้าของ เช่น deployment manifest ที่เก็บใน Git, CI pipeline หรือชุดตัวแปรของ Ansible
กรณีทั่วไป: คุณเรียก API ของคลาวด์ ได้คำอธิบายทรัพยากรเป็น JSON ยาว 200 บรรทัด และต้องการเก็บเป็นโค้ดโครงสร้างพื้นฐาน การแปลงจะได้ไฟล์ที่ไม่มีวงเล็บปีกกาและเครื่องหมายจุลภาค แก้หนึ่งบรรทัดก็เกิด diff หนึ่งบรรทัด และอธิบายค่าที่แปลกด้วยคอมเมนต์ได้ เช่นเดียวกับ test fixture และไฟล์แปลภาษาที่คนที่ไม่ใช่นักพัฒนาแก้ไข หากต้องการตารางแบบแบนสำหรับสเปรดชีตหรือรายงาน แปลง JSON เป็น CSV เหมาะกว่า
เครื่องมือที่ใช้ไฟล์คอนฟิกแบบ YAML
| หน่วยงาน | ข้อกำหนด | แหล่งที่มา |
|---|---|---|
| GitHub Actions | เวิร์กโฟลว์อยู่ใน .github/workflows เป็นไฟล์ .yml หรือ .yaml | GitHub Docs |
| GitLab CI/CD | กำหนดไปป์ไลน์ใน .gitlab-ci.yml ที่รากของที่เก็บ | GitLab Docs |
| Docker Compose | อธิบายเซอร์วิสใน compose.yaml (เดิมคือ docker-compose.yml) | Docker Docs |
| Ansible | Playbook และไฟล์ตัวแปรเขียนด้วย YAML | Ansible Docs |
| Kubernetes | Manifest รับได้ทั้ง JSON หรือ YAML ส่วนเอกสารและ Helm chart ใช้ YAML | Kubernetes |
ตัวอย่างการแปลง JSON เป็น YAML ที่มีค่าซับซ้อน
name: api version: "1.10" debug: false tags: - web - eu country: "NO" # นอร์เวย์ ต้องใส่เครื่องหมายคำพูด ไม่เช่นนั้น YAML 1.1 จะอ่านเป็น false
สิ่งที่ YAML มอบให้
- ใส่คอมเมนต์ด้วย #
- diff สั้นลงในการรีวิวโค้ด
- ส่วนใหญ่ไม่มีวงเล็บปีกกา เครื่องหมายจุลภาค หรืออัญประกาศ
- ข้อความหลายบรรทัดด้วย block scalar แบบ |
สิ่งที่ควรระวัง
- การเยื้องมีความหมาย ช่องว่างที่เกินมาจึงเปลี่ยนโครงสร้างได้
- ห้ามใช้แท็บในการเยื้อง
- สตริงที่ไม่มีอัญประกาศอาจถูกอ่านเป็นตัวเลขหรือบูลีน
- ตัวแยกวิเคราะห์ช้ากว่าและไม่สม่ำเสมอเท่า JSON
ตัวอย่างนี้แสดงว่าทำไมการค้นหาและแทนที่วงเล็บปีกกาธรรมดาจึงไม่พอ เวอร์ชัน 1.10 เป็นสตริงใน JSON หากเขียนเปล่า ๆ ใน YAML จะถูกอ่านเป็นตัวเลข 1.1 ส่วน NO ซึ่งเป็นรหัส ISO ของนอร์เวย์ จะถูกตัวแยกวิเคราะห์ YAML 1.1 เช่น PyYAML อ่านเป็น false ทั้งสองค่าจึงคงอัญประกาศไว้ ขณะที่ตัวเลขและบูลีนจริงไม่มีอัญประกาศ
เปรียบเทียบ JSON กับ YAML
JSON
JavaScript Object Notation
JSON คือรูปแบบข้อความขนาดเบาสำหรับข้อมูลเชิงโครงสร้าง ได้รับความนิยมจาก Douglas Crockford ในช่วงต้นทศวรรษ 2000 และกำหนดเป็นมาตรฐาน RFC 8259 และ ECMA-404 แสดงอ็อบเจกต์ อาร์เรย์ สตริง ตัวเลข ค่าบูลีน และ null ด้วยไวยากรณ์ที่เรียบง่ายและอ่านง่าย เป็นรูปแบบเริ่มต้นของ API บนเว็บ ไฟล์การตั้งค่า และการแลกเปลี่ยนข้อมูลระหว่างแอปในแทบทุกภาษาโปรแกรม ไม่มีคอมเมนต์ วันที่ หรือสคีมาในตัว และไฟล์ขนาดใหญ่ที่ซ้อนกันหลายชั้นอ่านได้ยากหากไม่มีโปรแกรมดู
- การบีบอัด
- –
- พื้นหลังโปร่งใส
- –
- ภาพเคลื่อนไหว
- –
- เปิดตัว
- 2001 · Douglas Crockford
YAML
YAML
YAML (“YAML Ain't Markup Language”) เป็นรูปแบบข้อมูลที่มนุษย์อ่านง่าย เปิดตัวครั้งแรกในปี 2001 ใช้การย่อหน้าแทนวงเล็บ รองรับคอมเมนต์ และเป็นซูเปอร์เซตของ JSON นิยมใช้อย่างแพร่หลายสำหรับการตั้งค่าใน Docker Compose, Kubernetes, GitHub Actions และแอปพลิเคชันจำนวนมาก การพึ่งพาช่องว่างทำให้ไฟล์เสียได้ง่ายเพียงเพราะเว้นวรรคผิดที่เดียว และค่าบางอย่าง เช่น “no” หรือวันที่ อาจถูกตีความผิดไปจากที่คาดไว้
- การบีบอัด
- –
- พื้นหลังโปร่งใส
- –
- ภาพเคลื่อนไหว
- –
- เปิดตัว
- 2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
ผู้คนแปลง JSON เป็น YAML เมื่อข้อมูลที่สร้างขึ้นหรือมาจาก API ต้องกลายเป็นไฟล์คอนฟิกที่คนดูแล รีวิวใน pull request และใส่คอมเมนต์ประกอบได้
คำถามเกี่ยวกับการแปลง JSON เป็น YAML
JSON ถือเป็น YAML ที่ถูกต้องอยู่แล้วหรือไม่
ใน YAML 1.2 ใช่ ฉบับปี 2009 ถูกเขียนขึ้นให้เอกสาร JSON ทุกชิ้นเป็นเอกสาร YAML ด้วย คุณวาง JSON ลงในไฟล์ .yaml ได้และเครื่องมือส่วนใหญ่จะรับได้ การแปลงช่วยเรื่องความอ่านง่าย คือรูปแบบบล็อกที่ไม่มีวงเล็บปีกกา เครื่องหมายอัญประกาศ และเครื่องหมายจุลภาค ซึ่งเป็นสิ่งที่ผู้รีวิวและผู้ดูแลคนถัดไปคาดหวัง
ทำไมค่าบางค่าใน YAML จึงมีเครื่องหมายคำพูดครอบ
เพราะถ้าไม่มีเครื่องหมายอัญประกาศ YAML จะอ่านเป็นชนิดข้อมูลอื่น สตริงเวอร์ชันอย่าง 1.10 จะกลายเป็นตัวเลข 1.1 และ yes หรือ off อาจกลายเป็นค่าบูลีนในตัวแยกวิเคราะห์รุ่นเก่า สตริงที่หน้าตาเหมือนตัวเลข วันที่ หรือบูลีนต้องมีเครื่องหมายอัญประกาศเพื่อคงเป็นสตริง การแปลงอย่างระมัดระวังจึงเก็บไว้
เพิ่มคอมเมนต์หลังแปลงได้หรือไม่
ได้ และเป็นเหตุผลที่พบบ่อยในการแปลง เขียน # ตามด้วยบันทึกของคุณท้ายบรรทัดหรือในบรรทัดของตัวเอง JSON ไม่มีวิธีอธิบายว่าทำไมจึงตั้งค่าหนึ่ง ๆ แต่ YAML ทำได้ ทำให้การรีวิวและการส่งมอบงานง่ายขึ้น
ทำไม YAML จึงแจ้งข้อผิดพลาดเรื่องอักขระแท็บ
ข้อกำหนดของ YAML ห้ามใช้แท็บในการเยื้อง ใช้ได้เฉพาะช่องว่าง ตัวแปลงเขียนเป็นช่องว่าง แต่ตัวแก้ไขที่ตั้งให้แทรกแท็บอาจทำให้ไฟล์เสียเมื่อแก้ไขครั้งถัดไป ให้ตั้งตัวแก้ไขใช้ช่องว่างสำหรับไฟล์ .yaml
Kubernetes จะยอมรับไฟล์ manifest ที่แปลงแล้วหรือไม่
kubectl อ่านได้ทั้ง JSON และ YAML ข้อมูลจึงเหมือนกันทั้งสองแบบ เวอร์ชัน YAML เป็นแบบที่เอกสารส่วนใหญ่ Helm chart และการรีวิวโค้ดใช้ หากภายหลังต้องการ JSON กลับมาสำหรับ jq หรือการเรียก API ให้ใช้ แปลง YAML เป็น JSON เพื่อย้อนกลับ
- แปลง YAML เป็น JSONแปลงไฟล์ .yaml และ .yml เป็น JSON สำหรับ API ตัวตรวจสอบ และเครื่องมือที่อ่านได้เฉพาะ JSON จัดย่อหน้าให้อ่านง่ายเป็นค่าเริ่มต้น ครั้งละ 20 ไฟล์ ลบไฟล์ใน 30 นาที
- แปลง JSON เป็น XMLแปลง JSON เป็น XML ออนไลน์ คีย์เป็นอิลิเมนต์ อาร์เรย์เป็นอิลิเมนต์ซ้ำ ใต้แท็กรากที่คุณตั้งชื่อเอง จัดรูปแบบอ่านง่าย ไม่ต้องสมัครบัญชี
- แปลง JSON เป็น CSVแปลง JSON หรือ JSON Lines เป็น CSV หนึ่งแถวต่อออบเจ็กต์ แตกฟิลด์ซ้อนเป็นคอลัมน์ UTF-8 พร้อม BOM ให้ Excel แสดงอักขระถูกต้อง ครั้งละ 20 ไฟล์
- แปลง XML เป็น JSONแปลงไฟล์ XML ให้เป็น JSON ที่อ่านง่าย แอตทริบิวต์กลายเป็นคีย์ @ แท็กที่ซ้ำกันกลายเป็นอาร์เรย์ ข้อความคงเดิม เหมาะกับการตอบกลับ SOAP ฟีด และไฟล์ส่งออกจากระบบเก่า
- แปลง JSON เป็น Base64เข้ารหัสไฟล์ JSON เป็น Base64 บรรทัดเดียวสำหรับ Kubernetes Secrets ตัวแปร CI เพย์โหลด API และโทเค็น ถอดกลับได้ตรงทุกไบต์ เลือกใส่ data URI ได้
- แปลง JSON เป็น Excelแปลงไฟล์ JSON หรือ JSON Lines ให้เป็นชีต Excel XLSX โดยคีย์จะกลายเป็นหัวคอลัมน์และแต่ละเรคคอร์ดเป็นหนึ่งแถว แปลงได้สูงสุด 20 ไฟล์ต่อครั้ง ไม่ต้องสมัครบัญชี