【问题标题】:Convert yaml to json using javascript [duplicate]使用javascript将yaml转换为json [重复]
【发布时间】:2016-08-26 16:54:21
【问题描述】:

我得到了这个 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 变量中...

那么,我该怎么做呢?

嘿,请查看下面的链接以获取YAML to JSON converter https://www.yamlonline.com/

【问题讨论】:

  • 我已经投票重新开放(可能不重要,因为这是一个老问题)。 tl:dr - 链接的问题是不同的。我对这个 Q 的解释是“将 YAML 转换为 JSON”,但没有说明原因(尽管该示例将其存储在变量中)。另一个问题是“将 Yaml 解析/加载到 javascript 中的对象”(专门用于浏览器)。

标签: javascript json yaml


【解决方案1】:

您可以通过在节点上运行一个简单的 javascript 脚本来解决这个问题。

  1. 安装node.js
  2. 安装js-yaml 包:npm install js-yaml -g

然后将此脚本保存到文件中,并使用 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));

【讨论】:

    【解决方案2】:

    不幸的是,JavaScript 的标准库中没有任何东西可以为您做到这一点。

    您可以自己构建,但工作量很大。您必须构建一个解析器,并且可能需要解决很多边缘情况。可能值得考虑使用third-party module

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      • 2019-04-30
      • 2016-12-11
      • 1970-01-01
      • 2016-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多