logo

YAML-gegevenstypen

YAML kent drie soorten gegevenstypen:

  1. Scalair
  2. Lijst
  3. Woordenboek

Scalair gegevenstype:

Scalair is een eenvoudig gegevenstype. In YAML betekent scalair een eenvoudige waarde voor een sleutel. De waarde van de scalair kan geheel getal, float, Boolean en string zijn. Scalaire gegevenstypen worden ingedeeld in twee gegevenstypen:

  1. Numeriek Gegevenstype
  2. Snaar

Numeriek Gegevenstype

Er zijn drie typen numerieke gegevenstypen:

  • Geheel getal
  • Drijvende-kommagetallen
  • Booleaanse waarden

Een Gegevenstype geheel getal kan decimaal, octaal of hexadecimaal zijn.

Bijvoorbeeld:

array gesorteerd in Java
 --- age: 12345 octalexample: 012345 hexaexample: 0x12d4 

Hier wordt de hexadecimale waarde aangegeven met 0x, en de octale waarde met voorloopnul. Wanneer we dit document uitvoeren op ons Python-script, wordt de volgende uitvoer gegenereerd:

 age: 12345 octalexample: 9946 hexaexample: 4820 

De drijvende-kommawaarde kan vast en exponentieel zijn.

Bijvoorbeeld:

 --- height: 180.0 exp: 12.3015e+05 

Wanneer we de bovenstaande entiteit evalueren, krijgen we het volgende:

 height: 180.0 exp: 1230150.0 

A Booleaanse waarde kan Waar/Onwaar of Ja/Nee of Aan/Uit zijn.

Bijvoorbeeld:

 --- boolenval1: True booleanval2: False fan: On light: Off 

Snaar

YAML-tekenreeksen zijn Unicode. In het volgende voorbeeld gaan we een eenvoudige tekenreeks definiëren, zonder aanhalingstekens.

Voorbeeld:

 --- str1: this is a normal string 

Wanneer we dit verwerken, wordt de volgende uitvoer gegenereerd:

 str1: this is a normal string 

Nu zullen we een string definiëren met een escape-reeks. De volgende tekenreeks bevat een speciaal teken (anders dan alfanumeriek), dus dubbele aanhalingstekens.

 --- str1: 'the cost is 390
' str2: the cost is 390
 

Wanneer we dit verwerken, wordt de volgende uitvoer gegenereerd:

 str1: the cost is 390 str2: the cost is 390
 

Tijdens het YAML-bestand kunnen we de waarde van een gegevensvariabele instellen op nul. Later kunnen we een programma schrijven om de waarde van null in een andere waarde te veranderen.

 --- str1: null str2: ~ 

Ons programma verwerkt dit als:

 str1: none str2: none 

In YAML kunnen we een tekenreeks van meerdere regels op één regel schrijven met behulp van het > symbool. Hierin wordt een newline-teken ( ) genegeerd.

Voorbeeld:

 str: > this is a multi-line string it spans more than one line 

De bovenstaande string wordt zonder de nieuwe regels als volgt geïnterpreteerd:

 str : this is a multi-line string it spans more than one line 

In YAML kunnen we een tekenreeks met meerdere regels in een nieuwe regel schrijven met behulp van | symbool. Hierin wordt het newline-teken ( ) opgenomen.

Voorbeeld:

in een string werpen
 str: | this is a multi-line string it spans more than one line 

We zien de nieuwe regels dus als volgt in het document:

 str : this is a multi-line string it spans more than one line 

Lijsten

We kunnen de lijst als volgt op één regel definiëren:

 --- items: [6, 7, 8, 9, 10] name: [six, seven, eight, nine, ten] 

Deze stijl staat bekend als blokstijl. We kunnen de bovenstaande lijst als volgt in meerdere regels plaatsen:

 --- items: - 6 - 7 - 8 name: - 'six' - 'seven' - 'eight' - 'nine' 

Deze stijl staat bekend als flowstijl. Een lijst die complexe objecten bevat, heeft meerdere regels nodig.

 --- items: - values: value1: value 2: value 3: - other values: key: value 

Een array kan een willekeurig aantal geldige YAML-waarden bevatten. Maar de waarde van een lijst kan niet van hetzelfde type zijn.

Woordenboeken

Als we een complex YAML-bestand willen schrijven dat de complexe datastructuur bevat, zullen we woordenboeken gebruiken. Het is een verzameling sleutel-waardeparen en elk van de sleutel-waardeparen kan met veel opties worden genest.

Voorbeeld 1:

 --- student1: 'john' hobbies: - music - reading - dancing 

In het bovenstaande voorbeeld is student de eerste sleutel en john de waarde. Hobby's zijn de tweede sleutel, maar deze is genest, wat betekent dat deze een lijst met waarden bevat. De waarde van de sleutel kan opnieuw een sleutel:waardepaar zijn, wat we in het volgende voorbeeld zullen zien.

Voorbeeld 2:

 student2: fatherName: 'William' motherName: 'Marry' subjectDetails: subject1: 70 subject2: 100 

De subjectDetails toont een sleutel, en de waarde van deze sleutel is een lijst met sleutel: waardeparen. vadernaam, moedernaam en onderwerpnaam zijn de sleutels. Waar de sleutel subjectName een lijst met sleutel bevat: waardeparen en onderwerp1 en onderwerp2 zijn de sleutels voor de waarden 70 en 100.