aspose.info
TH

รูปแบบไฟล์ YAML

อัปเดตเมื่อ

ไฟล์ YAML คืออะไร??

ไฟล์ YAML ประกอบด้วยภาษา YAML (YAML ไม่ใช่ภาษามาร์กอัป) ซึ่งเป็นภาษาสำหรับการทำให้เป็นอันดับข้อมูลโดยใช้ Unicode ใช้สำหรับไฟล์การกำหนดค่า, การส่งข้อความทางอินเทอร์เน็ต, การคงอยู่ของวัตถุ ฯลฯ YAML ใช้นามสกุล .yaml สำหรับไฟล์ ไวยากรณ์ไม่ขึ้นกับภาษาโปรแกรมเฉพาะ โดยทั่วไปแล้ว YAML ได้รับการออกแบบมาสำหรับการโต้ตอบของมนุษย์และทำงานได้ดีกับภาษาโปรแกรมสมัยใหม่ การสนับสนุนสำหรับการจัดลำดับโครงสร้างข้อมูลเนทีฟตามอำเภอใจช่วยเพิ่มความสามารถในการอ่านไฟล์ YAML แต่ทำให้กระบวนการแยกวิเคราะห์และการสร้างไฟล์ซับซ้อนขึ้นเล็กน้อย

ประวัติย่อ

YAML ถูกเสนอครั้งแรกในปี 2544 และได้รับการพัฒนาโดย Clark Evans, Ingy döt Net และ Oren Ben-Kiki YAML ได้รับการกล่าวถึงครั้งแรกว่าหมายถึง “Yet Another Markup Language” เพื่อระบุจุดประสงค์ของภาษาดังกล่าวในฐานะภาษามาร์กอัป มันถูกเปลี่ยนวัตถุประสงค์ในภายหลังเป็น “YAML Aint Markup Language” เพื่อระบุวัตถุประสงค์ว่าเน้นข้อมูล

รูปแบบไฟล์ YAML

ไฟล์ YAML ประกอบด้วยประเภทข้อมูลต่อไปนี้

  • สเกลาร์: สเกลาร์คือค่าต่างๆ เช่น สตริง จำนวนเต็ม บูลีน ฯลฯ
  • ลำดับ: ลำดับคือรายการที่มีแต่ละรายการขึ้นต้นด้วยยัติภังค์ (-) รายการสามารถซ้อนกันได้
  • การแมป: การแมปช่วยให้สามารถแสดงรายการคีย์ที่มีค่าต่างๆ ได้

ไวยากรณ์

  • ช่องว่าง: การเยื้องช่องว่างใช้เพื่อระบุการซ้อนและโครงสร้างโดยรวม
ชื่อ: จอห์น สมิธ
ติดต่อ:
บ้าน: 1012355532
สำนักงาน: 5002586256
ที่อยู่:
ถนน: |
123 ตรอกทอร์นาโด
ห้องชุด 16
เมือง: East Centerville
รัฐ: KS
  • ความคิดเห็น: ความคิดเห็นเขียนขึ้นต้นด้วยสัญลักษณ์ “#”
# นี่คือความคิดเห็น YAML
  • รายการ: ยัติภังค์ (-) ใช้เพื่อระบุสมาชิกรายการกับสมาชิกแต่ละคนในบรรทัดที่แยกจากกัน สมาชิกรายการยังสามารถใส่วงเล็บเหลี่ยม ([…]) โดยคั่นสมาชิกด้วยเครื่องหมายจุลภาค (,)
  - A
  - B
  - C
[เอ บี ซี]
  • อาร์เรย์ที่เชื่อมโยง: อาร์เรย์ที่เชื่อมโยงจะล้อมรอบด้วยวงเล็บปีกกา ({…}) คีย์และค่าจะคั่นด้วยโคลอน (:) และแต่ละคู่คั่นด้วยเครื่องหมายจุลภาค (,)
  {name: John Smith, age: 20}
  • สตริง: สตริงสามารถเขียนโดยมีหรือไม่มีเครื่องหมายคำพูดคู่ (") หรือเครื่องหมายคำพูดเดี่ยว (')
สตริงตัวอย่าง
"สตริงตัวอย่าง"
'สตริงตัวอย่าง'
  • เนื้อหาบล็อกสเกลาร์: เนื้อหาสเกลาร์สามารถเขียนในรูปแบบบล็อกโดยใช้สิ่งต่อไปนี้:
    • |: All live breaks are significant.
    • >: Each line break is folded to space. It removes the leading whitespace for each line.
ข้อมูล: |
ย.ม
(YAML ไม่ใช่ภาษามาร์กอัป)
เป็นภาษาอนุกรมข้อมูล
ข้อมูล: ?
YAML (YAML ไม่ใช่ภาษามาร์กอัป)
เป็นภาษาอนุกรมข้อมูล
  • เอกสารหลายฉบับ: เอกสารหลายฉบับถูกคั่นด้วยเครื่องหมายยัติภังค์สามตัว (—) ในสตรีมเดียว ยัติภังค์ระบุจุดเริ่มต้นของเอกสาร ยัติภังค์ยังใช้เพื่อแยกคำสั่งจากเนื้อหาเอกสาร จุดสิ้นสุดของเอกสารระบุด้วยจุดสามจุด (…)
  ---
เอกสาร 1
  ---
เอกสาร 2
...
  • ประเภท: ในการระบุประเภทของค่า ให้ใช้เครื่องหมายอัศเจรีย์คู่ (!!)
ตอบ: !!float 123
b: !!str 123
  • แท็ก: ในการกำหนดแท็กให้กับโน้ต จะใช้เครื่องหมายแอมเปอร์แซนด์ (&) และเพื่ออ้างอิงโหนดนั้น จะใช้เครื่องหมายดอกจัน (*)
ชื่อ: จอห์น สมิธ
การเรียกเก็บเงิน: &id01
ถนน: |
123 ตรอกทอร์นาโด
ห้องชุด 16
เมือง: East Centerville
รัฐ: KS

ส่งไปที่: *id01
  • คำสั่ง: เอกสาร YAML นำหน้าด้วยคำสั่งในสตรีมได้ คำสั่งเริ่มต้นด้วยเครื่องหมายเปอร์เซ็นต์ (%) ตามด้วยชื่อและพารามิเตอร์ที่คั่นด้วยช่องว่าง
%YAML 1.2
  ---
เนื้อหาเอกสาร

ตัวอย่างไฟล์ YAML

คุณสามารถดู ตัวอย่างไฟล์ docker yaml ด้านล่าง:

topology:
database_node_name: docker_controller
docker_controller_node_name: docker_controller
self_service_portal_node_name: docker_controller
kvm_compute_node_names: kvm_compute1
docker_compute_node_names: docker_compute1

YAML กับ JSON

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

YAMLJSON
ขั้นตอนที่ซับซ้อนและใช้เวลานานในการแยกวิเคราะห์ข้อมูลซีเรียลไลซ์แยกวิเคราะห์ข้อมูลซีเรียลไลซ์ JSON อย่างรวดเร็วและง่ายดายด้วยการออกแบบที่เรียบง่ายขึ้น
การสนับสนุนชุมชนน้อยลงการสนับสนุนและความนิยมของชุมชนที่ใหญ่ขึ้น
สนับสนุนความคิดเห็นไม่สนับสนุนความคิดเห็น
ความสามารถในการใช้การอ้างอิงวัตถุข้อมูลอื่นๆเป็นไปไม่ได้ที่จะทำให้โครงสร้างที่ซับซ้อนเป็นอนุกรมด้วยการอ้างอิงวัตถุ
ลำดับชั้นแสดงโดยใช้อักขระช่องว่างคู่ ไม่อนุญาตให้ใช้อักขระแท็บวัตถุและอาร์เรย์จะแสดงในวงเล็บปีกกาและวงเล็บเหลี่ยม
String quotes เป็นทางเลือก แต่สนับสนุน single และ double quotesStrings must be in double quotes
โหนดรูทสามารถเป็นประเภทข้อมูลใดๆ ที่ถูกต้องโหนดรูทต้องเป็นอาร์เรย์หรือวัตถุ

อ้างอิง

ดูเพิ่มเติม