Est-il possible d'avoir des chaînes multi-lignes en JSON?
Oui. Je viens de le tester maintenant avec mon navigateur Web Firefox en appuyant sur F12, en cliquant sur la console et en tapant en bas de l'écran.
x={text:"hello\nworld"}
L'objet x vient d'être créé à partir d'une chaîne au format JSON contenant une chaîne multiligne.
console.log(x.text)
hello
world
x.text s'affiche, montrant qu'il s'agit d'une chaîne de plusieurs lignes.
Ces deux tests montrent que l'interpréteur Javascript de Firefox est heureux de créer et d'utiliser JSON avec des chaînes multilignes.
Plus de tests avec JSON.stringify
et JSON.parse
ont montré que l'interpréteur Javascript peut convertir un objet contenant des chaînes multilignes en JSON et le réanalyser sans aucun problème.
Dans le passé, j'ai stocké l'intégralité des œuvres de Shakespeare en tant que propriété dans un objet JSON, puis je l'ai envoyé sur Internet, sans altération.
Exemple
Voici une chaîne de deux lignes entrée sur trois lignes
x={text:"expert\
s\nex\
change"}
On peut afficher l'objet
console.log(x)
donnant
Object { text: "experts\nexchange" }
ou la chaîne
console.log(x.text)
donnant
experts
exchange
La fin des lignes de la chaîne résulte de l'utilisation de \ n et les multiples lignes d'entrée sont obtenues en utilisant juste \ à la fin de la ligne.
En pratique, vous voudrez peut-être synchroniser vos fins de ligne avec celles de la chaîne, par exemple
x={text:"experts\n\
exchange"}
Longueur de chaîne multiligne
console.log("Hello\nWorld".length)
11
console.log("Hello World".length)
11
Notez que la chaîne avec la nouvelle ligne n'est pas plus longue que la chaîne avec l'espace. Même si deux caractères ont été tapés sur le clavier ('\' et 'n'), un seul caractère est stocké dans la chaîne.