我要用js-yaml转换这段代码
let coor = `[ ${x}, ${y}, 0 ]`;
rooms.push( {
...
coordinates: coor,
...
} );
我会哭
coordinates: [ 1, 2, 0 ]
但是我现在得到的是带有配额的字符串:
"[ 7, 3, 0 ]"
这就是我写文件的方式
fs.writeFileSync( `${id}.yml`, yaml.safeDump( rooms ), 'utf8', err => {
我应该使用哪种选项?
答案 0 :(得分:0)
您正在将字符串转储到YAML,如果将其写为纯标量(即不带引号),则会被解释为YAML序列。为防止这种情况发生,您需要在字符串前后加上引号。
换句话说:由于字符串([
)的第一个字符在YAML中具有特殊含义,因此需要用标量标引。
在像这样转储字符串时,无法解决此问题。当然,您可以以流式转储数组,然后将得到[ ... ]
,但不带引号,但是转储字符串时,将防止您做错事。