Czy w JSON jest możliwe ciągi wieloliniowe?
Tak. Właśnie przetestowałem to teraz w przeglądarce Firefox, naciskając klawisz F12, klikając konsolę i pisząc u dołu ekranu.
x={text:"hello\nworld"}
Obiekt x został właśnie utworzony z ciągu formatu JSON zawierającego ciąg wielu wierszy.
console.log(x.text)
hello
world
Wyświetlany jest x. tekst pokazujący, że jest to ciąg wieloliniowy.
Te dwa testy pokazują, że interpreter JavaScript Firefoksa chętnie tworzy i używa JSON z ciągami wielowierszowymi.
Więcej testów z JSON.stringify
i JSON.parse
pokazało, że interpreter Javascript może konwertować obiekt zawierający wielowierszowe łańcuchy do JSON i parsować go ponownie bez żadnego problemu.
W przeszłości przechowywałem pełne dzieła Szekspira jako właściwość w obiekcie JSON, a następnie przesyłałem je przez Internet, bez szwanku.
Przykład
Oto ciąg dwóch linii wprowadzony przez trzy linie
x={text:"expert\
s\nex\
change"}
Możemy wyświetlić obiekt
console.log(x)
dający
Object { text: "experts\nexchange" }
lub ciąg
console.log(x.text)
dający
experts
exchange
Koniec linii w łańcuchu wynika z użycia \ n, a wiele linii wejściowych jest uzyskiwanych za pomocą \ tylko na końcu linii.
W praktyce możesz zsynchronizować zakończenia linii z zakończeniami w łańcuchu, np
x={text:"experts\n\
exchange"}
Długość sznurka wieloliniowego
console.log("Hello\nWorld".length)
11
console.log("Hello World".length)
11
Zauważ, że ciąg z nową linią nie jest dłuższy niż ciąg ze spacją. Mimo że na klawiaturze wpisano dwa znaki („\” i „n”), w ciągu jest przechowywany tylko jeden znak.