YAML - Stream di personaggi

In YAML, ti imbatti in vari flussi di personaggi come segue:

  • Directives
  • Marcatori di confine del documento
  • Documents
  • Stream completo

In questo capitolo, li discuteremo in dettaglio.

Direttive

Le direttive sono istruzioni di base utilizzate nel processore YAML. Le direttive sono i dettagli della presentazione come i commenti che non si riflettono nell'albero di serializzazione. In YAML, non c'è modo di definire direttive private. Questa sezione discute vari tipi di direttive con esempi pertinenti:

Direttive riservate

Le direttive riservate vengono inizializzate con tre trattini (---) come mostrato nell'esempio seguente. Le direttive riservate vengono convertite in un valore specifico di JSON.

%YAML 1.1
--- !!str
"foo"

Direttiva YAML

Le direttive YAML sono direttive predefinite. Se convertito in JSON, il valore recuperato include il carattere barra nei caratteri precedenti e finali.

%YAML 1.1
---
!!str "foo"

Marcatori di confine del documento

YAML utilizza questi marcatori per consentire a più di un documento di essere contenuto in un flusso. Questi marcatori sono usati specialmente per trasmettere la struttura del documento YAML. Notare che una riga che inizia con "---" viene utilizzata per iniziare un nuovo documento.

Il codice seguente spiega questo con esempi:

%YAML 1.1
---
!!str "foo"
%YAML 1.1
---
!!str "bar"
%YAML 1.1
---
!!str "baz"

Documenti

Il documento YAML è considerato come una singola struttura dati nativa presentata come un singolo nodo radice. I dettagli di presentazione nel documento YAML come direttive, commenti, rientri e stili non sono considerati come contenuti inclusi in essi.

Esistono due tipi di documenti utilizzati in YAML. Sono spiegati in questa sezione:

Documenti espliciti

Inizia con l'indicatore di inizio del documento seguito dalla presentazione del nodo radice. Di seguito viene fornito l'esempio di dichiarazione esplicita YAML:

---

some: yaml

...

Include un marcatore di inizio e fine esplicito che è "---" e "..." nell'esempio dato. Convertendo lo YAML specificato in formato JSON, otteniamo l'output come mostrato di seguito -

{
   "some": "yaml"
}

Documenti impliciti

Questi documenti non iniziano con un indicatore di inizio documento. Rispettare il codice riportato di seguito -

fruits:
   - Apple
   - Orange
   - Pineapple
   - Mango

Convertendo questi valori in formato JSON otteniamo l'output come un semplice oggetto JSON come indicato di seguito -

{
   "fruits": [
      "Apple",
      "Orange",
      "Pineapple",
      "Mango"
   ]
}

Stream completo

YAML include una sequenza di byte chiamata come flusso di caratteri. Il flusso inizia con un prefisso contenente un ordine dei byte che denota una codifica dei caratteri. Lo stream completo inizia con un prefisso contenente una codifica dei caratteri, seguito da commenti.

Di seguito è mostrato un esempio di flusso completo (flusso di caratteri):

%YAML 1.1
---
!!str "Text content\n"