A YAML háromféle adattípussal rendelkezik:
- Skalár
- Lista
- Szótár
Skaláris adattípus:
A skalár egy egyszerű adattípus. A YAML-ben a skalár egy kulcs egyszerű értékét jelenti. A skalár értéke lehet integer, float, Boolean és string. A skaláris adattípusok két adattípusra oszthatók:
- Numerikus adattípus
- Húr
Numerikus adattípus
Háromféle numerikus adattípus létezik:
- Egész szám
- Lebegőpontos számok
- Boole-ok
An Egész adattípus lehet decimális, oktális vagy hexadecimális.
Például:
--- age: 12345 octalexample: 012345 hexaexample: 0x12d4
Itt a hexadecimális értéket 0x, az oktális értéket pedig a kezdő nulla jelzi. Amikor ezt a dokumentumot a python szkriptünkön futtatjuk, a következő kimenet jön létre:
age: 12345 octalexample: 9946 hexaexample: 4820
A lebegőpontos érték lehet fix és exponenciális.
Például:
--- height: 180.0 exp: 12.3015e+05
A fenti entitás értékelése során a következőket kapjuk:
logo java
height: 180.0 exp: 1230150.0
A Logikai érték lehet igaz/hamis, igen/nem vagy be/ki.
Például:
--- boolenval1: True booleanval2: False fan: On light: Off
Húr
A YAML karakterláncok Unicode. A következő példában egy egyszerű karakterláncot fogunk definiálni idézőjelek használata nélkül.
Példa:
--- str1: this is a normal string
Amikor ezt feldolgozzuk, a következő kimenet jön létre:
str1: this is a normal string
Most definiálunk egy karakterláncot egy escape szekvenciával. A következő karakterlánc tartalmaz egy speciális karaktert (az alfanumerikustól eltérőt), tehát dupla idézőjeleket tartalmaz.
--- str1: 'the cost is 390 ' str2: the cost is 390
Amikor ezt feldolgozzuk, a következő kimenet jön létre:
str1: the cost is 390 str2: the cost is 390
A YAML fájl során egy adatváltozó értékét nullára állíthatjuk. Később írhatunk egy programot, amely megváltoztatja a null értékét bármely más értékre.
--- str1: null str2: ~
Programunk ezt a következőképpen dolgozza fel:
str1: none str2: none
A YAML-ben többsoros karakterláncot írhatunk egyetlen sorban a > szimbólum használatával. Ebben az újsor karaktert ( ) figyelmen kívül hagyja.
Példa:
str: > this is a multi-line string it spans more than one line
A fenti karakterlánc az új sorok nélkül a következőképpen értelmeződik:
str : this is a multi-line string it spans more than one line
A YAML-ben többsoros karakterláncot írhatunk újsorba a | használatával szimbólum. Ebben az újsor karakter ( ) szerepelni fog.
Példa:
str: | this is a multi-line string it spans more than one line
Tehát a következőképpen látjuk az új sorokat, ahol vannak a dokumentumban:
str : this is a multi-line string it spans more than one line
Listák
A listát egyetlen sorban a következőképpen határozhatjuk meg:
--- items: [6, 7, 8, 9, 10] name: [six, seven, eight, nine, ten]
Ez a stílus blokk stílusként ismert. A fenti listát több sorba is feltehetjük a következőképpen:
--- items: - 6 - 7 - 8 name: - 'six' - 'seven' - 'eight' - 'nine'
Ez a stílus flow style néven ismert. Egy összetett objektumokat tartalmazó listához több sor szükséges.
--- items: - values: value1: value 2: value 3: - other values: key: value
Egy tömb tetszőleges számú érvényes YAML értéket tartalmazhat. De egy lista értéke nem lehet azonos típusú.
Szótárak
Ha egy összetett YAML fájlt akarunk írni, amely tartalmazza az összetett adatstruktúrát, szótárakat fogunk használni. Ez a kulcs: érték párok és a kulcs: érték párok gyűjteménye, számos opcióval egymásba ágyazható.
1. példa:
--- student1: 'john' hobbies: - music - reading - dancing
A fenti példában a tanuló az első kulcs, a john pedig az érték. A hobbik a második kulcs, de beágyazott, ami azt jelenti, hogy értéklistát tartalmaz. A kulcs értéke ismét egy kulcs: érték pár lehet, amit a következő példában látni fogunk.
2. példa:
student2: fatherName: 'William' motherName: 'Marry' subjectDetails: subject1: 70 subject2: 100
A tárgyrészletek egy kulcsot mutatnak, ennek a kulcsnak az értéke pedig a kulcs: érték párok listája. apaNév, anyanév és tárgynév a kulcsok. Ahol a tárgynév kulcs kulcslistát tartalmaz: az értékpárok, valamint a tárgy1 és tárgy2 a 70-es és 100-as értékek kulcsai.