YAML là gì?

YAML là gì?

YAML là 1 định dạng dũ liệu trung gian được thiết kế để người dùng và các ngôn ngữ lập trình cùng hiểu được. YAML được dùng vào mục đích tương tự JSON, XML nhưng nó lại có nhiều tính năng nổi bật hơn vì cấu trúc dữ liệu linh hoạt hơn, hỗ trợ nhiều ngôn ngữ lập trình, diễn đạt và mở rộng dữ liệu hơn và dễ sử dụng vì khá có nhiều kiểu dữ liệu lập trình.  chi tiết tại http://www.yaml.org/

Ví dụ về 1 đoạn YAML được biểu diễn như sau:

-
  name: dung
  mail: me@lcdung.top
-
  name: admin
  mail: admin@lcdung.top

http://yaml-online-parser.appspot.com/ Là 1 trang chuyển đổi YAML sang JSON. Bạn nên dùng trang này trong lúc đọc sẽ nhanh hiểu hơn.

YAML dùng làm gì?

Tương tự JSON hay XML, YAML có thể dùng để chứa đựng thông tin ở dạng text. Dùng cho các file config, lưu giá trị hằng…

YAML và JSON

– JSON là YAML, nói cách khác JSON có thể đọc được bởi các trình đọc YAML, điều ngược lại không đúng.
– JSON đáp ứng tốt hơn mục đích trao đổi dữ liệu ( thông qua AJAX…), YAML để xử lý các dữ liệu offline (file config…). Chắc vì JSON thường được xử lý nhanh hơn (http://stackoverflow.com/questions/2451732/how-is-it-that-json-serialization-is-so-much-faster-than-yaml-serialization-in-p)

YAML và XML

– YAML không có các thẻ thuộc tính như XML nhưng thay vào đó nó hỗ trợ các kiểu khai báo để xử lý dữ liệu.

Ví dụ
1 đoạn XML

<user id="babooey" on="cpu1">
    <firstname>Bob</firstname>
    <lastname>Abooey</lastname>
    <department>adv</department>
    <cell>555-1212</cell>
    <address password="xxxx">ahunter@example1.com</address>
    <address password="xxxx">babooey@example2.com</address>
</user>

1 đoạn YAML

babooey:
            computer : cpu1
            firstname: Bob
            lastname: Abooey
            cell: 555-1212
            addresses:
                - address: babooey@example1.com
                  password: xxxx
                - address: babooey@example2.com
                  password: xxxx

Muốn lấy thông tin của 1 user: với XML bạn tìm đến thẻ user có id=”babooey”, với YAML bạn tìm đến key: babooey.

– Sau 2 ví dụ trên, bạn thấy cách viết nào tối ưu ngắn gọn và linh hoạt trong việc chỉnh sửa hơn!

Ưu điểm YAML
– Hỗ trợ comment trong file
– Tính linh hoạt trong biểu diễn dữ liệu cao nhờ có hỗ trợ kiểu dữ liệu: float, array, list…
– Hỗ trợ phép gán (anchor)…
– YAML dễ đọc-hiểu-viết, cú pháp ngắn gọn làm đoạn code YAML trong khá thoáng đãng.- Hiện tại YAML có rất nhiều thư viện cho các ngôn ngữ khác nhau: Chi tiết xem ở đây http://yaml.org/

Cú pháp sử dụng YAML

– Giống cú pháp của Python, YAML yêu cầu thụt đầu dòng trước mỗi câu. Thụt đầu dòng bởi các dấu cách (tùy cấu trúc (khối lệnh – block) mà dùng 1 hay 2,4… dấu cách), không dùng tab.

– Dùng dấu # để bắt đầu comment.

– dấu “-” để bắt đầu cho 1 list các phần tử

Ví dụ:

# start YAML
- a
- b
-
  - c1
  - c2
-
  -
    - d1
    - d2

Kết quả: Do link dài nên rút gọn – Click vào đây

– “—” để bắt đầu cho 1 đoạn YAML, và … để kết thúc đoạn đó ( … có thể có hoặc không )

Ví dụ: Link

– Với các giá trị lặp lại hoặc dùng nhiều lần,dùng “&” để gán và “*” để lấy giá trị ra:
Ví dụ: Link
Ở đây pink được gán nhãn cl bằng “&cl” ở đầu. Để lấy lại giá trị pink dùng “*cl”.
Cái này có vẻ giống con trỏ trong C & để ghi địa chỉ, * để lấy giá trị.

Tham khảo thêm về cú pháp khác ở đây: http://www.yaml.org/refcard.html

Sliding Sidebar

About Me

About Me

Hello, my name is Dũng (Johnny). Welcome to my blog.

As I’m a developer, I write about topics related to the field of programming, mainly from a technical point of view. On this blog you’ll find posts which encourage discussion, information about development trends, case studies, reviews, tutorials, tips on how to improve your effectiveness, and anything else that might be fascinating to people from the IT industry.
I love PHP, NodeJS, Java,... and Fullstack.