我有一些数据用于生成SQL,因此使用文本分隔符是很重要的(单引号'分隔字符串字面量,但是双引号“界定标识符,至少在Oracle数据库)在!! str“some text”或!! str'一些文本'后保留文本分隔符
对于负载过程产生器我用这个
someKey: !!str 'Some SQL text'
,并预计someKey将包含整个字符串包括单引号:。'Some SQL text'
但是,js-yaml.safeLoad()interp数据为Some SQL text
,这不是我想要的。
解决方法很简单,我可以把文字变成另外报价:
someKey: "'Some SQL text'"
这给预期的结果。然而,我不确定为什么在这种情况下,我们需要在YAML中使用!! str标记,如果它几乎没有任何作用(它只对显式解释数字文字,真,假和空有用),它实际上几乎与在文本周围放置双引号。
我宁愿发表这个到一些YAML规范相关的论坛,但它似乎没有。
除了标准的解决方法,是否有任何技巧会做我最初想要的,即解释对象键后的任何内容作为字符串(+修剪任何初始和尾随空格)而不涉及双引号?
我之所以需要这个没有得到额外的换行符: –
之所以我需要这样的: - 对象键是一个输出列的名称(别名) - 该值表示要分配给此列的表达式。 现在,建设这样的: 栏:“FULL” 意味着我要ASIGN字符串常量'FULL'到列'column'而 柱:FULL 应该被解释为“指定标识FULL列'的价值列'“ - 其中FULL可能是列,变量,函数等。 不幸的是,YAML规范将这两个解释为** FULL **,这在某种意义上说是信息丢失,在这种情况下是重要信息丢失。 –
有一个yaml邮件列表,请注意[so]不是论坛,而是问答网站。 – Anthon