UltKit
รูปภาพ11
PDF13
เอกสารและข้อมูล7
วิดีโอ6
เสียง4
เครื่องมืออื่น ๆ22

แปลง YAML เป็น JSON

แปลงไฟล์คอนฟิก YAML สเปก OpenAPI และไฟล์ CI ให้เป็น JSON ที่ตัวแยกวิเคราะห์ API หรือตัวตรวจสอบสคีมาทุกตัวอ่านได้ อัปโหลดไฟล์ .yaml หรือ .yml แล้วดาวน์โหลด JSON ที่จัดย่อหน้าแล้ว

แปลงไฟล์ข้อมูล

หรือลากไฟล์ CSV, TSV, TXT … มาวางที่นี่ ·

สูงสุด 95 MB ต่อไฟล์· ได้สูงสุด 20 ไฟล์· ลบหลังจาก 30 นาที

ผลลัพธ์

ไฟล์จะถูกประมวลผลบนเซิร์ฟเวอร์ของเราและถูกลบหลังจาก 30 นาที

วิธีใช้เครื่องมือนี้

  1. 1

    อัปโหลดไฟล์ YAML

    เพิ่มไฟล์ .yaml หรือ .yml ได้ครั้งละไม่เกิน 20 ไฟล์ ไฟล์ละไม่เกิน 95 MB ระบบจะคงชื่อเดิมไว้ ไฟล์ JSON ที่ได้จะใช้ชื่อเดียวกันแต่เปลี่ยนนามสกุล

  2. 2

    เลือกแบบจัดย่อหน้าหรือแบบกะทัดรัด

    ตัวเลือก จัดรูปแบบให้อ่านง่าย เปิดอยู่ ซึ่งจะเยื้อง JSON เพื่อให้อ่านและตรวจโค้ดได้สะดวก หากต้องการไฟล์บรรทัดเดียวสำหรับวางในเนื้อหาของคำขอ ให้ปิดตัวเลือกนี้ใน การตั้งค่าขั้นสูง

  3. 3

    แปลงแล้วนำไปใช้

    กด แปลงเป็น JSON จากนั้นดาวน์โหลดไฟล์ แล้วนำไปใช้กับ API, ตัวตรวจสอบ หรือสคริปต์ที่ต้องใช้ไฟล์นี้

เหตุผลที่นักพัฒนาแปลง YAML เป็น JSON

YAML เขียนขึ้นเพื่อให้คนอ่าน ใช้การเยื้องแทนวงเล็บปีกกา มีความคิดเห็นได้ และสตริงส่วนใหญ่ไม่ต้องใส่เครื่องหมายคำพูด จึงเป็นฟอร์แมตของ Kubernetes manifest, เวิร์กโฟลว์ GitHub Actions, ไฟล์ Docker Compose และสเปก OpenAPI ที่ทีมแก้ไขด้วยมือ ส่วน JSON เขียนขึ้นเพื่อโปรแกรม ทุกภาษามีตัวแยกวิเคราะห์ JSON ในไลบรารีมาตรฐาน เบราว์เซอร์อ่านได้โดยตรง และ HTTP API ส่วนใหญ่รับเฉพาะฟอร์แมตนี้

ดังนั้นการแปลงจึงเกิดขึ้นที่รอยต่อระหว่างระบบ วิศวกรแพลตฟอร์มส่ง manifest ผ่าน jq ซึ่งอ่านได้เฉพาะ JSON นักพัฒนาแบ็กเอนด์ส่งสเปก OpenAPI ให้ตัวสร้างโค้ดที่ต้องการ JSON ผู้ทดสอบโหลดข้อมูลทดสอบที่เขียนด้วย YAML เข้าชุดทดสอบ JavaScript ในทุกกรณี YAML ยังเป็นต้นฉบับหลัก และ JSON เป็นผลลัพธ์จากการสร้าง หากต้องจัดการทั้งไดเรกทอรีของฟีดหรือไฟล์ส่งออกแทนไฟล์คอนฟิก แปลง XML เป็น JSON ทำงานกับฟอร์แมตมาร์กอัปรุ่นเก่าได้ในแบบเดียวกัน

YAML และ JSON พัฒนาควบคู่กันมาอย่างไร

Clark Evans เสนอ YAML เป็นครั้งแรก
2001
YAML 1.2 ทำให้ JSON เป็นเซตย่อยของ YAML
2009
RFC 8259 มาตรฐาน JSON ปัจจุบัน
2017
เผยแพร่ YAML 1.2.2 ฉบับปรับปรุง
2021

ฟีเจอร์ที่มีเฉพาะใน YAML จะเป็นอย่างไรใน JSON

Anchor (&defaults) และ alias (*defaults) ช่วยให้ YAML นำบล็อกเดิมกลับมาใช้ซ้ำได้ แต่ JSON ไม่มีการอ้างอิง จึงแทนที่ alias แต่ละตัวด้วยสำเนาเต็มของบล็อกที่ผูกไว้

  • JSON อาจยาวกว่า YAML อย่างเห็นได้ชัด
  • Merge key (<<: *defaults) จะถูกคลี่ออกในแบบเดียวกัน
คอนฟิก YAML ขนาดเล็กในรูป JSON ที่จัดรูปแบบแล้ว
{
  "service": "billing",
  "replicas": 3,
  "ports": [8080, 9090],
  "env": {
    "LOG_LEVEL": "info",
    "REGION": "NO"
  }
}

ข้อมูลเกี่ยวกับฟอร์แมต YAML และ JSON

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
ตัวแปลงไฟล์ YAML

JSON

JavaScript Object Notation

JSON คือรูปแบบข้อความขนาดเบาสำหรับข้อมูลเชิงโครงสร้าง ได้รับความนิยมจาก Douglas Crockford ในช่วงต้นทศวรรษ 2000 และกำหนดเป็นมาตรฐาน RFC 8259 และ ECMA-404 แสดงอ็อบเจกต์ อาร์เรย์ สตริง ตัวเลข ค่าบูลีน และ null ด้วยไวยากรณ์ที่เรียบง่ายและอ่านง่าย เป็นรูปแบบเริ่มต้นของ API บนเว็บ ไฟล์การตั้งค่า และการแลกเปลี่ยนข้อมูลระหว่างแอปในแทบทุกภาษาโปรแกรม ไม่มีคอมเมนต์ วันที่ หรือสคีมาในตัว และไฟล์ขนาดใหญ่ที่ซ้อนกันหลายชั้นอ่านได้ยากหากไม่มีโปรแกรมดู

การบีบอัด
–
พื้นหลังโปร่งใส
–
ภาพเคลื่อนไหว
–
เปิดตัว
2001 · Douglas Crockford
ตัวแปลงไฟล์ JSON

คนแปลง YAML เป็น JSON เมื่อคอนฟิกหรือสเปกที่เขียนให้คนอ่านต้องป้อนให้เครื่อง เช่น คำขอ API ตัวตรวจสอบสคีมา หรือเครื่องมือที่ไม่มีตัวแยกวิเคราะห์ YAML

คำถามที่พบบ่อยเกี่ยวกับการแปลง YAML เป็น JSON

ทำไมต้องแปลง YAML เป็น JSON ในเมื่อเก็บข้อมูลเดียวกัน

เพราะเครื่องมือจำนวนมากอ่านได้เฉพาะ JSON ตัวอ่าน JSON มีมาให้ในทุกภาษาโปรแกรมและเบราว์เซอร์ ขณะที่ YAML ต้องใช้ไลบรารีเพิ่มเติม เนื้อหาคำขอของ REST API, ตัวตรวจสอบ JSON Schema, jq รวมถึงไฟล์อย่าง package.json หรือ manifest.json ของส่วนขยายเบราว์เซอร์ ล้วนต้องใช้ JSON

คอมเมนต์ใน YAML จะเป็นอย่างไรหลังแปลง

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

ทำไม NO หรือ off จึงกลายเป็น false

ตัวแยกวิเคราะห์ที่ใช้ YAML 1.1 จะอ่าน yes, no, on และ off เป็นค่าบูลีน ดังนั้นรหัสประเทศอย่าง NO ของนอร์เวย์อาจกลายเป็น false ส่วน YAML 1.2 จำกัดบูลีนไว้เพียง true และ false แต่ไม่ใช่ทุกเครื่องมือที่ทำตาม ให้ใส่เครื่องหมายคำพูดครอบค่าเหล่านี้ใน YAML เช่น "NO" แล้วค่าจะยังเป็นสตริงใน JSON

แปลงเทมเพลต CloudFormation ที่เขียนด้วย YAML ได้หรือไม่

AWS CloudFormation รองรับทั้งสองฟอร์แมต แต่แท็กแบบสั้นอย่าง !Ref และ !GetAtt มีเฉพาะใน YAML ส่วนเทมเพลต JSON จะเขียนเป็นฟังก์ชันแบบเต็ม เช่น {"Ref": "MyBucket"} หรือ {"Fn::GetAtt": [...]} ควรแก้แท็กแบบสั้นให้เป็นแบบเต็มก่อนแปลง เพื่อให้เทมเพลต JSON ใช้งานได้

หากต้องการแปลงย้อนกลับต้องทำอย่างไร

ใช้ แปลง JSON เป็น YAML ซึ่งเป็นทิศทางที่พบบ่อยเมื่อต้องเปลี่ยนผลตอบกลับจาก API หรือไฟล์ที่สร้างขึ้นให้เป็นไฟล์คอนฟิกที่อ่านง่ายใน repository