YAML yra trijų tipų duomenų:
- Skaliarinis
- Sąrašas
- Žodynas
Skaliarinių duomenų tipas:
Skaliarinis yra paprastas duomenų tipas. YAML skaliaras reiškia paprastą rakto reikšmę. Skaliario reikšmė gali būti sveikasis skaičius, plūduriuojantis, Būlio ir eilutės reikšmė. Skaliariniai duomenų tipai skirstomi į du duomenų tipus:
- Skaitmeninis duomenų tipas
- Styga
Skaitmeninis duomenų tipas
Yra trys skaitmeninių duomenų tipai:
int konvertavimas į eilutę Java
- Sveikasis skaičius
- Slankaus kablelio skaičiai
- Būlios
An Sveikasis duomenų tipas gali būti dešimtainis, aštuntainis arba šešioliktainis.
Pavyzdžiui:
--- age: 12345 octalexample: 012345 hexaexample: 0x12d4
Čia šešioliktainė reikšmė nurodoma 0x, o aštuntainė reikšmė nurodoma nuliu priekyje. Kai paleisime šį dokumentą naudodami python scenarijų, bus sugeneruota ši išvestis:
age: 12345 octalexample: 9946 hexaexample: 4820
The slankiojo kablelio vertė gali būti fiksuotas ir eksponentinis.
Pavyzdžiui:
--- height: 180.0 exp: 12.3015e+05
Įvertinę aukščiau pateiktą objektą, gausime:
height: 180.0 exp: 1230150.0
A Būlio vertė gali būti True/False arba Taip/Ne arba Įjungta/Išjungta.
Pavyzdžiui:
--- boolenval1: True booleanval2: False fan: On light: Off
Styga
YAML eilutės yra Unicode. Šiame pavyzdyje mes apibrėžsime paprastą eilutę, nenaudodami kabučių.
Pavyzdys:
--- str1: this is a normal string
Kai tai apdorosime, bus sugeneruota ši išvestis:
str1: this is a normal string
Dabar apibrėžsime eilutę su pabėgimo seka. Šioje eilutėje yra specialus simbolis (bet kas, išskyrus raidinius ir skaitinius), todėl joje yra dvigubų kabučių.
--- str1: 'the cost is 390 ' str2: the cost is 390
Kai tai apdorosime, bus sugeneruota ši išvestis:
str1: the cost is 390 str2: the cost is 390
YAML failo metu duomenų kintamojo reikšmę galime nustatyti į nulį. Vėliau galime parašyti programą, kuri pakeis null reikšmę į bet kurią kitą reikšmę.
--- str1: null str2: ~
Mūsų programa tai apdoroja taip:
str1: none str2: none
YAML galime parašyti kelių eilučių eilutę vienoje eilutėje naudodami simbolį >. Šiuo atveju naujos eilutės simbolis ( ) bus ignoruojamas.
Pavyzdys:
str: > this is a multi-line string it spans more than one line
Aukščiau pateikta eilutė be naujų eilučių bus interpretuojama taip:
str : this is a multi-line string it spans more than one line
YAML naujoje eilutėje galime parašyti kelių eilučių eilutę naudodami | simbolis. Čia bus įtrauktas naujos eilutės simbolis ( ).
Pavyzdys:
žemėlapis mašinraščiu
str: | this is a multi-line string it spans more than one line
Taigi mes matome naujas eilutes ten, kur jos yra dokumente:
str : this is a multi-line string it spans more than one line
Sąrašai
Sąrašą galime apibrėžti vienoje eilutėje taip:
--- items: [6, 7, 8, 9, 10] name: [six, seven, eight, nine, ten]
Šis stilius žinomas kaip blokinis stilius. Aukščiau pateiktą sąrašą galime sudėti į kelias eilutes taip:
--- items: - 6 - 7 - 8 name: - 'six' - 'seven' - 'eight' - 'nine'
Šis stilius žinomas kaip srauto stilius. Sąraše, kuriame yra sudėtingų objektų, reikia kelių eilučių.
--- items: - values: value1: value 2: value 3: - other values: key: value
Masyve gali būti bet koks galiojančių YAML reikšmių skaičius. Tačiau sąrašo vertė negali būti to paties tipo.
Žodynai
Jei norime parašyti sudėtingą YAML failą, kuriame yra sudėtinga duomenų struktūra, naudosime žodynus. Tai yra raktų: reikšmių porų ir kiekvienos raktų: reikšmių porų rinkinys, kurį galima sudėti su daugybe parinkčių.
1 pavyzdys:
--- student1: 'john' hobbies: - music - reading - dancing
Aukščiau pateiktame pavyzdyje studentas yra pirmasis raktas, o john yra reikšmė. Pomėgiai yra antrasis raktas, tačiau jis yra įdėtas, o tai reiškia, kad jame yra vertybių sąrašas. Rakto reikšmė vėl gali būti raktas: reikšmė pora, kurią matysime kitame pavyzdyje.
2 pavyzdys:
student2: fatherName: 'William' motherName: 'Marry' subjectDetails: subject1: 70 subject2: 100
SubjectDetails rodo raktą, o šio rakto reikšmė yra raktų: reikšmių porų sąrašas. tėvo vardas, motinos vardas ir subjekto vardas yra raktai. Kur subjekto pavadinimo raktas apima raktų sąrašą: reikšmių poros ir subjektas1 bei tema2 yra 70 ir 100 reikšmių raktai.