【发布时间】:2017-02-14 11:57:20
【问题描述】:
我想在 JSON 文件中存储一些 sql 字符串。 这就是 JSON 文件在我的理想世界中的样子
[
"select t.index1, t.title, t.description, t.insertDate
from myTable t
join anotherTable t2 on t.index1 = t2.fIndex
where t2.active = 1",
...
]
明显的限制是 JSON 和 javascript 不支持多行字符串。
我想避免这样做:
[
"select t.index1, t.title, t.description, t.insertDate\nfrom myTable t\njoin anotherTable t2 on t.index1 = t2.fIndex\nwhere t2.active = 1",
...
]
我看到一个人这样做,这也不理想:
[
["select t.index1, t.title, t.description, t.insertDate",
"from myTable t",
"join anotherTable t2 on t.index1 = t2.fIndex",
"where t2.active = 1"],
...
]
然后在他的解释器程序中,他使用了myMultilineStringInArrayForm.join("\n")。
我想知道是否有人有任何关于模板字符串工作(或计划在未来工作)用于此目的的信息,如下所示:
[
`select t.index1, t.title, t.description, t.insertDate
from myTable t
join anotherTable t2 on t.index1 = t2.fIndex
where t2.active = 1`,
...
]
请注意,我在 ES6 的模板文字中使用了反引号 (`),显然变量的插值不适用于存储的 JSON,但我对此文字的多行特性感兴趣。
请注意,这个问题类似于这个 6 岁的问题:Multiline strings in JSON
我再次询问是因为我想知道 ` 语法是否已经计划好或从那时起已经开始工作了。
感谢您的帮助
【问题讨论】:
-
我也想避免使用 XML。如果在 JSON 中没有合乎逻辑的方法,那么我最后的选择可能是 XML,但在这个问题中,我只想探索 JSON 替代方案。
-
模板文字纯粹是 JavaScript 的一部分,而不是 JSON。
-
"我想在 JSON 文件中存储一些 sql 字符串。" - 做什么?为什么是 JSON? sql 字符串是从哪里来的,它们真的只是存储在那个文件中吗?
-
这确实是一个更复杂的模式,JSON 决定不是我的。它是一个以 JSON 格式存储其 ui 的框架,并且框架中的某些元素(网格等)具有 sql 语句来填充它们的行。当前的 sql 语句存储在
\n中,并且在没有打开 IDE 的情况下很难编辑,而且 git 很难报告更改,因为查询中的一个小更改会导致整行显示更改。确实有多种原因,但这与问题本身无关,将多行字符串存储在 json 中,可能借助新技术,例如 tpl lits
标签: json ecmascript-6 multiline template-literals