Có thể có các chuỗi nhiều dòng trong JSON không?
Đúng. Tôi vừa mới thử nghiệm điều này với trình duyệt web Firefox của mình bằng cách nhấn F12, nhấp vào bảng điều khiển và gõ ở dưới cùng của màn hình.
x={text:"hello\nworld"}
Đối tượng x vừa được tạo từ chuỗi định dạng JSON chứa chuỗi nhiều dòng.
console.log(x.text)
hello
world
x.text được hiển thị cho thấy rằng đó là một chuỗi nhiều dòng.
Hai thử nghiệm này cho thấy trình thông dịch Javascript của Firefox rất vui khi tạo và sử dụng JSON với các chuỗi nhiều dòng.
Nhiều thử nghiệm hơn với JSON.stringify
và JSON.parse
cho thấy trình thông dịch Javascript có thể chuyển đổi một đối tượng chứa các chuỗi đa dòng thành JSON và phân tích lại nó mà không gặp vấn đề gì.
Trước đây tôi đã lưu trữ các tác phẩm hoàn chỉnh của Shakespeare như một tài sản trong một đối tượng JSON và sau đó gửi nó qua internet, không được sửa chữa.
Thí dụ
Đây là một chuỗi hai dòng được nhập trên ba dòng
x={text:"expert\
s\nex\
change"}
Chúng ta có thể hiển thị đối tượng
console.log(x)
cho
Object { text: "experts\nexchange" }
hoặc chuỗi
console.log(x.text)
cho
experts
exchange
Kết thúc các dòng trong chuỗi kết quả từ việc sử dụng \ n và nhiều dòng đầu vào đạt được bằng cách chỉ \ ở cuối dòng.
Trong thực tế, bạn có thể muốn đồng bộ hóa các kết thúc dòng của mình với các kết thúc trong chuỗi, ví dụ:
x={text:"experts\n\
exchange"}
Độ dài chuỗi nhiều dòng
console.log("Hello\nWorld".length)
11
console.log("Hello World".length)
11
Lưu ý rằng chuỗi có dòng mới không dài hơn chuỗi có khoảng trắng. Mặc dù hai ký tự được gõ trên bàn phím ('\' và 'n'), chỉ có một ký tự được lưu trong chuỗi.