Файл YAML от JSON - PullRequest
       11

Файл YAML от JSON

0 голосов
/ 26 марта 2019

Я пытаюсь создать файл yaml из файла json, который будет использоваться для ограничения скорости резания и будет выглядеть примерно так (https://github.com/mrkschan/cuttle/blob/master/cuttle.yml). Это код, который мне нужно преобразовать в файл json. ( узел-yaml: https://www.npmjs.com/package/node-yaml)

const yaml = require('node-yaml');
const test = require('./test.json');

let converted = yaml.dump(test);
console.log(converted);

Вот файл test.json.

{
"zones": 
    [ 
        { 
            "host": "*", 
            "shared": true, 
            "control": "rps", 
            "rate": 2 
        }, 
        { 
            "host": "github.com", 
            "shared": false, 
            "control": "rpm", 
            "rate": 10
        }
    ] 
}

Вывод, который я получаю, таков:

zones:
  - host: '*'
    shared: true
    control: rps
    rate: 2
  - host: github.com
    shared: false
    control: rpm
    rate: 10

Это очень близко к тому, что я хочу вывести, за исключением того факта, что github.com не является "github.com". Если кто-нибудь знает, как это исправить, пожалуйста, дайте мне знать!

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

В YAML github.com не нужны кавычки.С этим или без него оно представляет одно и то же скалярное значение.

Но так как YAML является надмножеством JSON, ваш test.json файл уже является идеально подходящим YAML, и нет абсолютно никакой необходимости анализировать его (используя библиотеку JSON или YAML), а затемсвалка в ЯМЛ. только ваша программа должна скопировать (или переименовать) test.json в test.yaml, и все готово.

Примечание: Ваша ссылка указывает на cuttle.yml, нет объяснения, какие ограничения они должны использовать для расширения .yml.Рекомендуемое расширение для файлов YAML, опубликованное в официальном FAQ на yaml.org , с сентября 2006 года .yaml.

0 голосов
/ 26 марта 2019

С yaml_format : Строки в YAML могут быть заключены в одинарные и двойные кавычки. В некоторых случаях они также могут быть без кавычек .

Итак, github.com строковое значение в выводе yaml правильно не заключено в кавычки, а * строковое значение в выводе yaml правильно указано в кавычках.

Если вы ожидаете формально правильный формат yaml, то все готово.
Если вы ожидаете какой-то другой формат, вы должны формально определить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...