É possível ter strings de várias linhas no JSON?
Sim. Acabei de testar isso agora com o meu navegador Firefox pressionando F12, clicando no console e digitando na parte inferior da tela.
x={text:"hello\nworld"}
O objeto x acaba de ser criado a partir de uma sequência de formato JSON contendo uma sequência de várias linhas.
console.log(x.text)
hello
world
O x.text é exibido mostrando que é uma sequência de várias linhas.
Esses dois testes mostram que o intérprete Javascript do Firefox tem prazer em criar e usar JSON com seqüências de várias linhas.
Mais testes com JSON.stringify
eJSON.parse
mostrou que o interpretador Javascript pode converter um objeto contendo seqüências de linhas múltiplas em JSON e analisá-lo novamente sem nenhum problema.
No passado, eu armazenei as obras completas de Shakespeare como uma propriedade em um objeto JSON e as enviei pela Internet, sem corrupção.
Exemplo
Aqui está uma sequência de duas linhas inserida em três linhas
x={text:"expert\
s\nex\
change"}
Nós podemos exibir o objeto
console.log(x)
dando
Object { text: "experts\nexchange" }
ou a corda
console.log(x.text)
dando
experts
exchange
O final das linhas na string resulta do uso de \ n e as várias linhas de entrada são obtidas usando apenas \ no final da linha.
Na prática, você pode querer sincronizar as terminações da sua linha com as da string, por exemplo
x={text:"experts\n\
exchange"}
Comprimento da corda de várias linhas
console.log("Hello\nWorld".length)
11
console.log("Hello World".length)
11
Observe que a sequência com a nova linha não é maior que a sequência com o espaço. Mesmo que dois caracteres tenham sido digitados no teclado ('\' e 'n'), apenas um caractere é armazenado na string.