Chaîne caractères YAML
Cet article présente l'utilisation des chaînes de caractères dans le format YAML.
Votre avis
Nobody voted on this yet
|
|
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.
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
Voir Aussi
Code source http://www.svn.jouvinio.net/study/trunk/yaml