javascript - JSON 是否接受多行数组?
问题描述
我正在尝试将 SPA(单页应用程序)构建为仅使用 JSON 的简单网站,同时我正在学习 JavaScript。
在我使用的技术中,带有 HTML 标记的页面内容由 JavaScript 注入。
由于上一个 JavaScript 版本可以在反引号之间存储数据
`
Multi
Line
Data
`
我在问多行 JSON 对象是否可以通过相同的技术或类似的技术存储数据,所以我可以实现一种编辑数据的方法,而无需从 HTML 文件中导入每个标签,就像新的 JavaScript 框架所做的那样。
`` "" ''
例如:
var spa = {
..."spa_html_id_body_tag":"< h2 > body content < h2/ > < br > Bal bla bla .............."
}
解决方案
JSON 是一个非常严格的模式。这很棒,但它有几个缺点,其中最大的缺点是无法存储多行字符串。这对于在 JSON 中存储结构化文本和公钥等内容以供以后在浏览器中或在 Node.js 中的服务器上与 JavaScript 代码交互时尤其烦人。
幸运的是,有一个快速而简单的解决方案!
示例 假设我们有一个服务器列表及其关联的公钥。要将这些数据存储为 JSON,我们可以将其存储为逗号分隔的字符串对象数组,它可能看起来像这样:
{
"servers": {
"servername.com": {
"publicKey": [
"-----BEGIN PUBLIC KEY-----",
"MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0VmDBbzXdgubV/X8JP9B",
"rM/CqvXBey49BoYjk0ar4OA4LZnmD0A/pn6voPPe+DQC3ZpSFfkdZc5s/ij7edve",
"ob+reWdGOQAQnDxaGQoFyru/2tz1lNfaVOBU71QcpG4kda4XDjbS62hOqebgkQ0X",
"71ireglZeaJABvu6EFPFBwyr2ROmM1dq4rKtinpgUf9CTMPL/8yyitka+HsVZTuI",
"HDpFFxv6xPntfjMrIIRUPieIjRSJcF9yrTVqDIIOO9J3KplphXLXhAHRAnX3ducD",
"sZYe5yZZEdkS9Kx4P0INkyiqs9DFGwVnIMU07IuM1E+LqLVTqm46MVxzrjaAcyVC",
"WDTtzkERgvvaG8elbjb6iiA9aijNHM/EK0f68mjme7s0CHn9GJg4TwwvSLb8LqCs",
"cCKT11WAanE+SuAi0WinuaeFORwAFFXh7O5sS8At4woCNVsIZpFSWWiRBoZf5UBC",
"SfK8v9AL58foDDiCGlWKcpoQN5KBDBCTBD+RiXgoCKS9daHGpmXfAFsWmcjpVzvs",
"l24ei4Ue1jd7kj7Dlc8qtXQGZS1BhwDaIV4SQBGYKEBgTMExcsAtI9Sd1rtMFybO",
"wdfGmZkQ7pcLqOgEzyUOma+vwhWlvtfQXavH5NEdAS+ahsf8SDAI0TQtihLxTvO5",
"LLrORy0wclzv7V0s+6qoRuMCAwEAAQ==",
"-----END PUBLIC KEY-----"
]
}
}
}
您可以使用JSONLint验证此有效 JSON 。
然后,要检索我们的文本块,我们只需在换行符处将它们重新连接在一起,我们可以这样做:
var publicKey = our_data.servers['servername.com'].publicKey.join('\n');
就是这样!现在您可以在 JSON 中存储多行字符串。这不是最漂亮的东西,但考虑到 JSON 的约束,它是最简单的。
推荐阅读
- javascript - Pupeteer 单击模式上的按钮,但仅有效,但 10 次中只有 2-3 次
- openstack - Openstack - 如何在特定项目中创建新服务器
- python - 如何从列表中按名称从 django 模型中获取字段
- python - 使用discord.py制作一个函数来获取用户的输入?
- reactjs - 在 React 中实现脚本以获得用户同意
- flutter - 透明背景CurvedNavigationBar
- git - 我无法使用 aws codecommit 推送。我的更改不显示
- mongodb - MongoDB:比较两个输出并合并为一个
- python - 如何理解从 hash.digest() 返回的字节对象?
- javascript - 如何加快图像加载或增强感知性能?