我有一些數據用於生成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