Chaîne caractères YAML

De EjnTricks

Cet article présente l'utilisation des chaînes de caractères dans le format YAML.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Study icon.png Exemples

Notation Description Utilisation Valeur
  Le cas le plus simple. La chaîne de caractère est prise telquel.
value: Few words
Few words
' La chaîne de caractères peut être encadrée par ce caractère.

Il suffit de le doubler en cas d'utilisation dans la chaîne.

value: 'Safe with quote '' in value'
Safe with quote ' in value
> Suppression des retours à la ligne. Attention la valeur se termine par un retour à la ligne.
value: >
  First Line
  Second line
  Third line
First line Second line Third line\n
>- Suppression des retours à la ligne, y compris le dernier.
value: >-
  First Line
  Second line
  Third line
First line Second line Third line
| Conservations des retours à la ligne, y compris le dernier.
value: |
  First Line
  Second line
  Third line
First line

Second line

Third line\n

|- Conservations des retours à la ligne, sauf le dernier.
value: |-
  First Line
  Second line
  Third line
First line

Second line

Third line

A noter des cas particuliers pour "sécuriser" les chaînes de caractères. Dans le cadre d'un projet, la valeur {FIRST NAME}-{LAST SURNAME} devait être stockée. Or le caractère { est réservé en début de chaîne, il fallait encadrer la valeur comme dans les trois exemples suivants.

-
  value: '[First]-[Second]'
-
  value: '{First}-{Second}'
-
  value: 'Safe with quote '' in value'


Afin d'illustrer ces différentes syntaxes, des exemples ont été réalisées sur les frameworks étudiés.


Java format icon.png Code commun

Les exemples suivants s'appuye sur les tests de lecture des données YAML, pour lesquels du code commun a été mis en place. Celui-ci est complété avec un POJO, classe fr.ejn.tutorial.yaml.data.StringWrapper permettant de stocker les informations suivantes.

  • description, utilisée pour décrire l'objectf de l'exemple;
  • value, la valeur à lire.
package fr.ejn.tutorial.yaml.data;

/**
 * @author Etienne Jouvin
 *
 */
public class StringWrapper {

  private String description;
  private String value;

  /**
   * Get the description.
   *
   * @return the description
   */
  public String getDescription() {
    return description;
  }

  /**
   * Get the value.
   *
   * @return the value
   */
  public String getValue() {
    return value;
  }

  /**
   * Set the description.
   *
   * @param description the description to set
   */
  public void setDescription(String description) {
    this.description = description;
  }

  /**
   * Set the value.
   *
   * @param value the value to set
   */
  public void setValue(String value) {
    this.value = value;
  }

}


SnakeYAML

Le code exemple pour la lecture est repris afin de charger un fichier avec un enesemble d'exemple. Le fichier YAML, src\test\resources\fr\ejn\tutorial\snakeyaml\data\strings.yaml dans le module snakeyaml, est chargé avec le contenu suivant.

---
description: 'Long text, one line, with carriage return at end'
value: >
  First Line
  Second line
  Third line
---
description: 'Long text, one line, without carriage return at end'
value: >-
  First Line
  Second line
  Third line
---
description: 'Long text, preserve lines, with carriage return at end'
value: |
  First Line
  Second line
  Third line
---
description: 'Long text, preserve lines, without carriage return at end'
value: |-
  First Line
  Second line
  Third line
---
description: 'Safe string with brackets value'
value: '[First]-[Second]'
---
description: 'Safe string with brackets value'
value: '{First}-{Second}'
---
description: 'Safe string value with quote inside'
value: 'Safe with quote '' in value'
---
description: 'Simple texte'
value: Few words


YAMLBeans

De la même façon, le fichier src\test\resources\fr\ejn\tutorial\yamlbeans\data\strings.yaml, dans le module yamlbeans, est chargé avec le contenu suivant.

-
  description: 'Long text, one line, with carriage return at end'
  value: >
    First Line
    Second line
    Third line
-
  description: 'Long text, one line, without carriage return at end'
  value: >-
    First Line
    Second line
    Third line
-
  description: 'Long text, preserve lines, with carriage return at end'
  value: |
    First Line
    Second line
    Third line
-
  description: 'Long text, preserve lines, without carriage return at end'
  value: |-
    First Line
    Second line
    Third line
-
  description: 'Safe string with hooks value'
  value: '[First]-[Second]'
-
  description: 'Safe string with brackets value'
  value: '{First}-{Second}'
-
  description: 'Safe string value with quote inside'
  value: 'Safe with quote '' in value'
-
  description: 'Simple texte'
  value: Few words


Viewer icon.png Voir Aussi

Code source http://www.dev.jouvinio.net/svn/study/trunk/yaml