YAML - Kiểu dòng
Các kiểu dòng trong YAML có thể được coi như một phần mở rộng tự nhiên của JSON để bao phủ các dòng nội dung gấp để có tính năng dễ đọc hơn, sử dụng neo và bí danh để tạo các thể hiện đối tượng. Trong chương này, chúng tôi sẽ tập trung vào biểu diễn luồng của các khái niệm sau:
- Nút bí danh
- Nút trống
- Kiểu dòng chảy vô hướng
- Các kiểu thu thập dòng chảy
- Các nút luồng
Ví dụ về các nút bí danh được hiển thị bên dưới:
%YAML 1.2
---
!!map {
? !!str "First occurrence"
: &A !!str "Foo",
? !!str "Override anchor"
: &B !!str "Bar",
? !!str "Second occurrence"
: *A,
? !!str "Reuse anchor"
: *B,
}
Đầu ra JSON của mã được cung cấp ở trên được đưa ra bên dưới:
{
"First occurrence": "Foo",
"Second occurrence": "Foo",
"Override anchor": "Bar",
"Reuse anchor": "Bar"
}
Các nút có nội dung trống được coi là các nút trống. Ví dụ sau đây cho thấy điều này -
%YAML 1.2
---
!!map {
? !!str "foo" : !!str "",
? !!str "" : !!str "bar",
}
Đầu ra của các nút trống trong JSON được biểu diễn như sau:
{
"": "bar",
"foo": ""
}
Kiểu vô hướng luồng bao gồm các kiểu được trích dẫn kép, được trích dẫn đơn và kiểu đơn giản. Ví dụ cơ bản cho điều tương tự được đưa ra dưới đây:
%YAML 1.2
---
!!map {
? !!str "implicit block key"
: !!seq [
!!map {
? !!str "implicit flow key"
: !!str "value",
}
]
}
Đầu ra ở định dạng JSON cho ví dụ ở trên được hiển thị bên dưới:
{
"implicit block key": [
{
"implicit flow key": "value"
}
]
}
Tập hợp luồng trong YAML được lồng với một tập hợp khối trong một tập hợp luồng khác. Các mục thu thập luồng được kết thúc bằngcomma (,) chỉ báo. Ví dụ sau giải thích chi tiết về khối thu thập luồng:
%YAML 1.2
---
!!seq [
!!seq [
!!str "one",
!!str "two",
],
!!seq [
!!str "three",
!!str "four",
],
]
Đầu ra cho bộ sưu tập luồng trong JSON được hiển thị bên dưới:
[
[
"one",
"two"
],
[
"three",
"four"
]
]
Các kiểu luồng như JSON bao gồm các chỉ báo bắt đầu và kết thúc. Kiểu luồng duy nhất không có bất kỳ thuộc tính nào là kiểu vô hướng đơn giản.
%YAML 1.2
---
!!seq [
!!seq [ !!str "a", !!str "b" ],
!!map { ? !!str "a" : !!str "b" },
!!str "a",
!!str "b",
!!str "c",]
Đầu ra cho mã hiển thị ở trên ở định dạng JSON được đưa ra bên dưới:
[
[
"a",
"b"
],
{
"a": "b"
},
"a",
"b",
"c"
]