È possibile avere stringhe multilinea in JSON?
Sì. Ho appena provato questo ora con il mio browser Web Firefox premendo F12, facendo clic sulla console e digitando nella parte inferiore dello schermo.
x={text:"hello\nworld"}
L'oggetto x è stato appena creato da una stringa in formato JSON contenente una stringa multilinea.
console.log(x.text)
hello
world
x.text viene visualizzato per indicare che si tratta di una stringa a più righe.
Questi due test mostrano che l'interprete Javascript di Firefox è felice di creare e usare JSON con stringhe multilinea.
Altri test con JSON.stringify
e JSON.parse
dimostrato che l'interprete Javascript può convertire un oggetto contenente stringhe multilinea in JSON e analizzarlo di nuovo senza alcun problema.
In passato ho archiviato le opere complete di Shakespeare come proprietà in un oggetto JSON e poi le ho inviate su Internet, senza essere corrotte.
Esempio
Ecco una stringa di due righe immessa su tre righe
x={text:"expert\
s\nex\
change"}
Siamo in grado di visualizzare l'oggetto
console.log(x)
dando
Object { text: "experts\nexchange" }
o la stringa
console.log(x.text)
dando
experts
exchange
La fine delle linee nella stringa risulta dall'uso di \ n e le linee di input multiple sono ottenute usando solo \ alla fine della linea.
In pratica potresti voler sincronizzare le tue terminazioni di linea con quelle nella stringa, ad es
x={text:"experts\n\
exchange"}
Lunghezza stringa multi-linea
console.log("Hello\nWorld".length)
11
console.log("Hello World".length)
11
Si noti che la stringa con la nuova riga non è più lunga della stringa con lo spazio. Anche se sulla tastiera sono stati digitati due caratteri ('\' e 'n'), nella stringa è memorizzato solo un carattere.