将yaml转换为json

时间:2016-05-02 01:06:14

标签: javascript json yaml

我收到了这个yaml文件:

description:
  is_a: AnnotationProperty
  labelEN: description
  labelPT: descrição

relevance:
  is_a: AnnotationProperty
  domain: Indicator
  labelEN: relevance
  labelPT: relevância

title:
  is_a: AnnotationProperty
  labelPT: título
  labelEN: title
  range: Literal

我需要将它转换为json,所以我可以得到这样的东西:

{
    "description": {
        "is_a": "AnnotationProperty",
        "labelEN": "description",
        "labelPT": "descrição"
    },
    "relevance": {
        "is_a": "AnnotationProperty",
        "domain": "Indicator",
        "labelEN": "relevance",
        "labelPT": "relevância"
    },
    "title": {
        "is_a": "AnnotationProperty",
        "labelPT": "título",
        "labelEN": "title",
        "range": "Literal"
    }
}

并将其保存在js变量中......

那么,我该怎么做呢?

2 个答案:

答案 0 :(得分:8)

您可以使用在节点上运行的简单JavaScript脚本来解决这个问题。

  1. 安装node.js
  2. 安装js-yaml包:npm install js-yaml -g
  3. 然后将此脚本保存到文件中,并使用node.js运行它:

    var inputfile = 'input.yml',
        outputfile = 'output.json',
        yaml = require('js-yaml'),
        fs = require('fs'),
        obj = yaml.load(fs.readFileSync(inputfile, {encoding: 'utf-8'}));
    // this code if you want to save
    fs.writeFileSync(outputfile, JSON.stringify(obj, null, 2));
    

答案 1 :(得分:2)

遗憾的是,JavaScript中的标准库中没有任何内容可以帮助您。

可以建立自己的,但它需要做很多工作。您将不得不构建一个解析器,并且可能需要解决很多边缘情况。可能值得考虑使用third-party module