从Yaml移除配额

时间:2019-05-12 09:48:36

标签: javascript node.js yaml

我要用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 => {

我应该使用哪种选项?

1 个答案:

答案 0 :(得分:0)

您正在将字符串转储到YAML,如果将其写为纯标量(即不带引号),则会被解释为YAML序列。为防止这种情况发生,您需要在字符串前后加上引号。

换句话说:由于字符串([)的第一个字符在YAML中具有特殊含义,因此需要用标量标引。

在像这样转储字符串时,无法解决此问题。当然,您可以以流式转储数组,然后将得到[ ... ],但不带引号,但是转储字符串时,将防止您做错事。